我昨天开始学习Python编程,所以我是一个新手!
我有这个函数,它必须检查:
- 插入的值是否为数字
- 数字是否不大于31(请参见下面的代码)
在调试过程中,我发现了这个我不理解的错误:
- 我故意选择了一个大于31的数字,例如45
- 它再次提示我,我选择了一个正确的数字,例如7
- 在代码中,我要求打印voto变量两次(在注释中称为“POINT A”和“POINT B”)
输出结果如下:
7
45
然后我又被要求输入一个不同的数字。
我不明白为什么变量的值会在while循环刚开始后立即改变。
请您使用非常简单的话向我解释一下,谢谢!(<- 请记住我是一个初学者!:D)
提前感谢您!
def controlla_voto(voto_lett):
flag=1
while flag:
for y in voto_lett:
if (ord(y) in range(48,58))==0:
voto_lett=raw_input("Invalid charachters, try again: ")
flag=1
break
else: flag=0
voto=int(voto_lett)
print voto # POINT A
while (voto in range(32))==0:
print voto #POINT B
voto_lett=raw_input("Invalid number, try again: ")
controlla_voto(voto_lett)
return voto
(ord(y) in range(48,58))==0
?你是不是想说not isdigit(y)
? - Fred Foo