Converting from string to integer to solve the ( ValueError: invalid literal for int() with base 10: '' ) error message in Python
Converting from string to integer to solve the ( ValueError: invalid literal for int() with base 10: '' ) error message in Python
我有一个python代码,有不同的功能,代码有不同的功能和主要功能。
主要功能如下:
def main():
while True:
ch = menu(['Soil Analysis and Yield Prediction','Supervised Learning','Unsupervised Learning','Exit'])
print('\n\n')
if ch==3:
break
elif ch==1:
Sup()
elif ch==2:
Usup()
else:
stdout.write('\nINVALID RESPONSE, TRY AGAIN .........\n\n')
#print('{:^204s}'.format('*'*204))
print('\n\n')
print('{:^204s}'.format('Authors:\tKshitij Jaiswal, Vibhav , Gaurav Khattar\n'))
print('{:^204s}'.format('THANKS YOU FOR USING OUR SOFTWARE'))
if __name__=='__main__':
main()
当用户输入1时,将调用某些函数,如果用户输入2,则调用其他函数。
当我 运行 程序时,出现此错误:
ValueError Traceback (most recent call last)
<ipython-input-11-6292cf16da20> in <module>
17
18 if __name__=='__main__':
---> 19 main()
20
<ipython-input-11-6292cf16da20> in main()
1 def main():
2 while True:
----> 3 ch = menu(['Soil Analysis and Yield Prediction','Supervised Learning','Unsupervised Learning','Exit'])
4 print('\n\n')
5 if ch==3:
<ipython-input-10-2a274c21fe19> in menu(x)
6 print(str(i)+'.',x[i])
7 stdout.write('\n\nEnter your Choice:\t')
----> 8 return int(stdin.readline())
ValueError: invalid literal for int() with base 10: ''
而函数menu()如下:
def menu(x):
print('*'*204)
print('{:^204s}'.format(x[0]))
print('\n\n')
for i in range(1,len(x)):
print(str(i)+'.',x[i])
stdout.write('\n\nEnter your Choice:\t')
return int(stdin.readline())
我尝试 return int(float(stdin.readline()) 但它没有用。请提供任何帮助。
你不需要使用 stdout 和 stdin 来实现你想要的,你可以使用 input
而不是它们:
def menu(x):
print('*'*204)
print('{:^204s}'.format(x[0]))
print('\n\n')
for i in range(1,len(x)):
print(str(i)+'.',x[i])
return int(input('\n\nEnter your Choice:\t'))
如果您 运行 通过某种 IDE 甚至 Jupyter 编写代码,程序可能会向您的应用发送信号,这会影响您的输入。
这是当我将以下循环放入我的 Jupyter notebook 时发生的情况(直到我停止它):
i = 0
while True:
i += 1
print(stdin.readline())
print(i)
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
...
另请查看本文以更好地了解输入和标准输入之间的区别
https://www.geeksforgeeks.org/difference-between-input-and-sys-stdin-readline/
我有一个python代码,有不同的功能,代码有不同的功能和主要功能。 主要功能如下:
def main():
while True:
ch = menu(['Soil Analysis and Yield Prediction','Supervised Learning','Unsupervised Learning','Exit'])
print('\n\n')
if ch==3:
break
elif ch==1:
Sup()
elif ch==2:
Usup()
else:
stdout.write('\nINVALID RESPONSE, TRY AGAIN .........\n\n')
#print('{:^204s}'.format('*'*204))
print('\n\n')
print('{:^204s}'.format('Authors:\tKshitij Jaiswal, Vibhav , Gaurav Khattar\n'))
print('{:^204s}'.format('THANKS YOU FOR USING OUR SOFTWARE'))
if __name__=='__main__':
main()
当用户输入1时,将调用某些函数,如果用户输入2,则调用其他函数。
当我 运行 程序时,出现此错误:
ValueError Traceback (most recent call last)
<ipython-input-11-6292cf16da20> in <module>
17
18 if __name__=='__main__':
---> 19 main()
20
<ipython-input-11-6292cf16da20> in main()
1 def main():
2 while True:
----> 3 ch = menu(['Soil Analysis and Yield Prediction','Supervised Learning','Unsupervised Learning','Exit'])
4 print('\n\n')
5 if ch==3:
<ipython-input-10-2a274c21fe19> in menu(x)
6 print(str(i)+'.',x[i])
7 stdout.write('\n\nEnter your Choice:\t')
----> 8 return int(stdin.readline())
ValueError: invalid literal for int() with base 10: ''
而函数menu()如下:
def menu(x):
print('*'*204)
print('{:^204s}'.format(x[0]))
print('\n\n')
for i in range(1,len(x)):
print(str(i)+'.',x[i])
stdout.write('\n\nEnter your Choice:\t')
return int(stdin.readline())
我尝试 return int(float(stdin.readline()) 但它没有用。请提供任何帮助。
你不需要使用 stdout 和 stdin 来实现你想要的,你可以使用 input
而不是它们:
def menu(x):
print('*'*204)
print('{:^204s}'.format(x[0]))
print('\n\n')
for i in range(1,len(x)):
print(str(i)+'.',x[i])
return int(input('\n\nEnter your Choice:\t'))
如果您 运行 通过某种 IDE 甚至 Jupyter 编写代码,程序可能会向您的应用发送信号,这会影响您的输入。
这是当我将以下循环放入我的 Jupyter notebook 时发生的情况(直到我停止它):
i = 0
while True:
i += 1
print(stdin.readline())
print(i)
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
...
另请查看本文以更好地了解输入和标准输入之间的区别
https://www.geeksforgeeks.org/difference-between-input-and-sys-stdin-readline/