我写了一个简单的密码生成器,但输入有问题。
例如,当运行密码(10)时,它运行得很好但是当我请求输入时,它似乎没有将输入注册为整数。
任何建议?
d
答案 0 :(得分:1)
input()
将始终返回一个字符串,即使它是一个数字字符串。
您需要使用int
功能将其转换为int()
。当输入无法转换为int
时,下面的代码也会捕获。我们将其打包在while
循环中,只要用户没有输入可以转换为str
的{{1}},就会一直询问。
int
同时尝试查看某些内容为valid = False
while not valid:
try:
x1 = int(x1)
valid = True
except ValueError:
print('not an int')
的语句int
是不是正确的方法。 x1 == int()
只会返回0.而是像这样使用int()
:
isinstance()
当然,这是无关紧要的,因为if isinstance(your_var, int):
<your code>
将始终返回一个字符串。
答案 1 :(得分:0)
在python 3 input()
中返回一个字符串,如python 2&#39; s raw_input()
来读取整数,只需int(input('some question'))