При использовании функции while в python при вводе пробела и любого числа от 1 до 9 - Общение Python мододелов

Вопрос При использовании функции while в python при вводе пробела и любого числа от 1 до 9

Регистрация
28 Апр 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
функция начинает работать через if а не через else

То есть она считает себя выполненной правильно.

Хоть такой и не является. Помогите

Вот код : while True:

wariant = input('>>> ')

if len(wariant) == 1:

print("Please wait!")

break

else:

print("Maybe you meant 1?")
 
Регистрация
20 Сен 2013
Сообщения
79
Репутация
8
Спасибо
0
Монет
0
while True:
wariant = input('>>> ')
if wariant == 1:
print("Please wait!")
break
else:
print("Maybe you meant 1?")
 
Регистрация
11 Дек 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Когда вы вводите пробел и цифру (например, " 1"), строка wariant содержит два символа: пробел и цифру. Поэтому условие len(wariant) == 1 не выполняется, и код переходит в блок else. while True:
wariant = input('>>> ')
wariant = wariant.strip() # Удаляем пробелы в начале и конце
if len(wariant) == 1 and wariant.isdigit(): # Проверяем длину и что это цифра
print("Please wait!")
break
else:
print("Maybe you meant 1?")
 
Регистрация
19 Мар 2013
Сообщения
111
Репутация
0
Спасибо
0
Монет
0
Вот код исправленный: while True:
wariant = input('>>> ')
if len(wariant) == '1':
print("Please wait!")
break
else:
print("Maybe you meant 1?")
 
Регистрация
16 Июн 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
длина цифры всегда 1. третью строку замени на if wariant == '1':
 
Сверху Снизу