如果用户输入字符串,python将给出选项
我正在使用Python 2.6.6 我有以下代码:如果用户输入字符串,python将给出选项,python,Python,我正在使用Python 2.6.6 我有以下代码: height = 20 width = 10 x = input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ') while x < (width + 1) or x > 20: print 'That option is not valid' x = input('Please insert a
height = 20
width = 10
x = input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
while x < (width + 1) or x > 20:
print 'That option is not valid'
x = input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
我明白为什么,但我该如何解决这个问题
问候,
Favolas在Python2.x中,必须使用raw\u input
而不是input
<代码>输入假设用户输入的是要评估的有效Python。最好的方法是获取字符串输入,然后根据需要进行转换。在这种情况下,您需要尝试使用int
进行转换
作为提醒,:
输入([提示])
相当于eval(原始输入(提示))
警告:此功能不能避免用户错误!它需要一个有效的Python表达式作为输入;如果输入在语法上无效,将引发SyntaxError
。如果评估过程中出现错误,可能会引发其他异常。(另一方面,有时这正是编写供专家使用的快速脚本时所需要的。)
在Python2.x中,必须使用raw_input
而不是input
<代码>输入假设用户输入的是要评估的有效Python。最好的方法是获取字符串输入,然后根据需要进行转换。在这种情况下,您需要尝试使用int
进行转换
作为提醒,:
输入([提示])
相当于eval(原始输入(提示))
警告:此功能不能避免用户错误!它需要一个有效的Python表达式作为输入;如果输入在语法上无效,将引发SyntaxError
。如果评估过程中出现错误,可能会引发其他异常。(另一方面,有时这正是编写供专家使用的快速脚本时所需要的。)
嗨,丹尼尔。谢谢你的回答。按照你的建议做了,但仍然有一些问题。我已编辑了我的原始问题,请查看。Favolas@Favolas,从代码中删除
x=int(x)
。然后,它将与原始输入
完美配合。嗨,杰弗里。谢谢,但是如果我删除了x=int(x),如果我运行这个并插入12(其有效),它将进入while循环。它解决了用户插入字符串的问题,但另一方面,它会停止使用intHi Daniel。谢谢你的回答。按照你的建议做了,但仍然有一些问题。我已编辑了我的原始问题,请查看。Favolas@Favolas,从代码中删除x=int(x)
。然后,它将与原始输入
完美配合。嗨,杰弗里。谢谢,但是如果我删除了x=int(x),如果我运行这个并插入12(其有效),它将进入while循环。它解决了用户插入一个字符串但另一个字符串却停止使用int的问题
height = 20
width = 10
x = raw_input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
x = int(x)
while x < (width + 1) or x > 20:
print 'That option is not valid'
x = raw_input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
x = int(x)
ValueError: invalid literal for int() with base 10: 'q'