Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ НАЙТИ ОШИБКУ В ЗАДАНИИ PYTHON!

Umar Ahmetianov Ученик (78), закрыт 4 недели назад
Сафия начала ходит в школу IQ. Там ее познакомили с буквами и цифрами. Однако эти циферки все никак ей не даются. Сафие нужна помощь.

Помогите Сафие определить, состоит ли строка полностью из цифр.

Входные данные
Дана строка.

Выходные данные
Вывести «YES», если строка состоит из цифр, иначе вывести «NO».


a = input()
for i in a:
if not ('0' <= i <= '9'):
b = "NO"
else:
b = "YES"
break
print(b)
Вот мой код, надо сделать так что бы при введении переменной, где есть и буквы и цифры писалось "NO".
Лучший ответ
GGG Просветленный (25378) 4 недели назад
В вашем коде есть несколько ошибок, которые нужно исправить:

Проверка внутри цикла должна продолжаться до тех пор, пока не найдена буква.
Переменная b должна быть инициализирована вне цикла, и изменяться только при нахождении нецифрового символа.
Если строка содержит буквы и цифры, нужно выводить "NO", а если только цифры, то "YES".
Вот исправленный вариант вашего кода:
 a = input()  
b = "YES"

for i in a:
if not ('0' <= i <= '9'):
b = "NO"
break

print(b)
Umar AhmetianovУченик (78) 4 недели назад
Спасибо!
Остальные ответы
Андрей Высший разум (435056) 4 недели назад
 print(['NO', 'YES'][input().isdigit()]) 
Встроенный в Python метод isdigit() проверяет, что все символы строки являются цифрами. А дальше False автоматически преобразуется в 0, а True - в 1 (слабая типизация). Цикл не нужен.
Umar AhmetianovУченик (78) 4 недели назад
Спасибо!
максим гаврилов Профи (903) 4 недели назад
b=0
c=0
if i>'0' and i<'9':
b=1
else:
if i>'a' and i<'z':
c=1
else:
if i>'а' and i<'я': # и для больших букв аналогично
c=1
if b=1 anf c=1:
d="YES"
else:
d="NO"
Umar AhmetianovУченик (78) 4 недели назад
Спасибо!
Сверхразум Оракул (50084) 4 недели назад
 a = input()  # Вводим строку 
is_digit = True # Предполагаем, что вся строка состоит из цифр

for i in a:
if not ('0' <= i <= '9'):
is_digit = False # Если находим нецифровой символ, устанавливаем флаг в False
break # Прерываем цикл, так как уже знаем, что строка не целиком из цифр

if is_digit:
print("YES")
else:
print("NO")
Похожие вопросы