Я начал программирование с помощью python вчера, поэтому я довольно новичок!Переменные меняют значения внутри цикла
У меня есть эта функция, которая должна проверить
- если вставленное значение является числом
- , если число не больше, чем 31 (см код ниже)
В процессе отладки, Я выяснил эту ошибку, которую я не понимаю:
- Я выбираю намеренно число, большее 31, например 45
- он снова запрашивает меня, и я выбираю правильный номер, например, 7
- В коде я прошу дважды печатать переменную voto (в комментариях я называю их «POINT A» и «POINT B»)
на выходе я получаю:
7
45
и я снова Aske d для ввода другого номера.
Я не понимаю, почему переменные меняют свое значение сразу после запуска цикла 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) в диапазоне (48,58)) == 0'? Вы имели в виду 'not isdigit (y)'? –
Исправьте углубление в вставленной программе; иначе мы не сможем это понять. –
Я пытаюсь вам помочь, но код не имеет смысла, и я не могу понять, как вы называете этот метод ... – joaoricardo000