如何将值作为字符串输入,然后在没有两个输入框的情况下输入int值?

时间:2015-09-08 13:28:58

标签: python string input while-loop int

我正在编写代码,其中用户必须猜测一个数字并输入它,以及他们可以键入“退出”,“退出”或“退出”的位置,它将结束程序。

我有一个while循环,一旦达到6次尝试的极限就会结束程序,并在其中输入(),他们可以猜出这个数字。我知道我需要在将input()转换为整数之前测试字符串,'quit','QUIT'或'Quit',但我不知道怎么做而没有输入()检查字符串和检查整数的字符串。

有什么建议吗?

3 个答案:

答案 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()接受任何类型的输入,从而解决您的问题。