我有一个小脚本,我一直在用Python练习。我无法让我的输入接受if语句的数字,也接受字符串作为小写。
如果用户键入'99'然后关闭程序,我想告诉我的脚本输入任何内容。到目前为止,它在我int(input())
的位置有效,但在我input()
的地方不起作用。我做错了什么或者我不能做什么?
现在我的if
语句如下:
if choice1 == 99:
break
我应该通过引用将99变成字符串吗?
也许是这样的:
if choice1 == "99":
break
这是脚本:
global flip
flip = True
global prun
prun = False
def note_finder(word):
prun = True
while prun == True:
print ('\n','\n','Type one of the following keywords: ','\n','\n', keywords,)
choice2 = input('--> ').lower()
if choice2 == 'exit':
print ('Exiting Function')
prun = False
start_over(input)
elif choice2 == 99: # this is where the scrip doesnt work
break # for some reason it skips this elif
elif choice2 in notes:
print (notes[choice2],'\n')
else:
print ('\n',"Not a Keyword",'\n')
def start_over(word):
flip = True
while flip == True:
print ('# Type one of the following options:\n# 1 \n# Type "99" to exit the program')
choice1 = int(input('--> '))
if choice1 == 99:
break
elif choice1 < 1 or choice1 > 1:
print ("Not an option")
else:
flip = False
note_finder(input)
while flip == True:
print ('# Type one of the following options:\n# 1 \n# Type "99" to exit the program')
choice1 = int(input('--> '))
if choice1 == 99:
break
elif choice1 < 1 or choice1 > 1:
print ("Not an option")
else:
flip = False
note_finder(input)
答案 0 :(得分:2)
所以input()
总是返回一个字符串。你可以在这里看到文档:
https://docs.python.org/3/library/functions.html#input
你能做的是这样的事情:
choice2 = input('--> ')
if choice2.isnumeric() and (int(choice2) == 99):
break
这可以避免您键入check并捕获不重要的错误。
请参阅下文,了解isnumeric如何使用不同的数字类型:
In [12]: a='1'
In [13]: a.isnumeric()
Out[13]: True
In [14]: a='1.0'
In [15]: a.isnumeric()
Out[15]: False
In [16]: a='a'
In [17]: a.isnumeric()
Out[17]: False