如果用户输入字符串,python将给出选项

如果用户输入字符串,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

我正在使用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 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'