我昨天开始用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