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

Почему мой код на питоне ничего не выводит?

- Ученик (8), открыт 1 неделю назад
print(*[i for i in input() if i in (0,1,2,3,4,5,6,7,8,9)])
#Он должен выводить цифры из предложения
5 ответов
Лев Перфилов Просветленный (26511) 1 неделю назад
Потому что у тебя в кортеже числа, а проверяешь на налиие в этом кортеже символ из строки.
-Ученик (8) 1 неделю назад
Спасибо большое, сидел минут 20 голову ломал что не так(:
Гошан Вайсберг Мыслитель (5600) 1 неделю назад
Потому что надо в текстовом формате числа брать, а не по значению, if I in "0123456789"
БобаШоу Умный Знаток (347) 1 неделю назад
Ваш код не выводит ничего, потому что вы используете input(), который считывает строку, а затем проверяете, есть ли символы в ней, сравнивая их с числами от 0 до 9. Однако, поскольку input() возвращает строку, символы в строке будут типа str, а числа в вашем условии — типа int. Поэтому сравнение не сработает.

Чтобы исправить это, вы можете изменить условие, чтобы проверять, является ли символ цифрой. Вот исправленный вариант вашего кода:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! print(*[i for i in input() if i.isdigit()]) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Объяснение:
i.isdigit() проверяет, является ли символ i цифрой (от 0 до 9).
print(*...) распечатывает элементы списка, разделяя их пробелами.
Теперь, если вы введете строку, содержащую цифры, код выведет только эти цифры. Например, если вы введете "Привет 123", вывод будет "1 2 3".
БобаШоу УмныйЗнаток (347) 1 неделю назад
Выписывать код print(*[i for i in input() if i.isdigit()]) БЕЗ ЗНАКОВ "!!!"
Вертолётов 625 Мудрец (13288) 1 неделю назад
Код:
 print(*[i for i in input() if i in '0123456789']) 
а Мыслитель (6404) 1 неделю назад
Потому что ты школу проболел. А там рассказывали про типы данных
Похожие вопросы