我正在编写代码,其中用户必须猜测一个数字并输入它,以及他们可以键入“退出”,“退出”或“退出”的位置,它将结束程序。
我有一个while循环,一旦达到6次尝试的极限就会结束程序,并在其中输入(),他们可以猜出这个数字。我知道我需要在将input()转换为整数之前测试字符串,'quit','QUIT'或'Quit',但我不知道怎么做而没有输入()检查字符串和检查整数的字符串。
有什么建议吗?
答案 0 :(得分:1)
无论你输入的是一个字符串,所以在尝试从中创建一个QUIT
对象之前,只需将它与int
进行比较就没什么坏处。
tries = 0
while tries < 6:
value = raw_input("Enter a number, or 'quit' to quit: ") # input() in Python 3.x
if value.upper() == 'QUIT':
sys.exit()
try:
value = int(value)
except ValueError:
continue # Return to the top of the loop for another value
# Process the input integer...
答案 1 :(得分:0)
可能你正在寻找这样的东西(python 2.6 / 7): -
lucky_number = 5
tries = 6
while tries:
inp = raw_input("User input: ")
if inp.isdigit() and int(inp) == lucky_number:
return True
elif inp.lower() == 'quit':
break
tries -= 1
return False
答案 2 :(得分:0)
由于您在接受输入后将其转换为int
,因此我假设您使用的是Python 3。
在主循环中尝试以下操作:
a = input()
if(a.isdigit()):
n = int(a)
#main code here
else:
#check for "quit" here as shown below
if(a.upper == 'QUIT'): #a.upper() will convert the string into capital letters
#You need to break from the main loop
break
如果您使用的是Python 2.7或更低版本,则在上面的示例代码中将input()
替换为raw_input()
将解决您的问题。
raw_input()
接受任何类型的输入,从而解决您的问题。