我昨天开始使用python进行编程,所以我是一个新手!
我有这个功能,必须检查
在调试过程中,我发现了这个我不明白的错误:
:
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
答案 0 :(得分:2)
这很完美!你忘记了递归电话的回报。
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: ")
return controlla_voto(voto_lett)
return voto
另一种解决方案是:
voto = controlla_voto(voto_lett)
但是需要一些东西来摆脱while循环。