Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 4

Как сделать if ... elif ... else ... ?

17.10.2013, 13:18. Показов 7012. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу, чтобы по кругу выполнялся блок if else, пока не станет истинным определенное выражение, но он в упор его не видит.

Python
1
2
3
4
5
6
7
8
9
while lalala == False:
    tututu = input ('Введите число ')
    if tututu == 1:
        print ('Лалала')
    elif tututu == 2:
        print ('Траляля')
        lalala == True
    elif tututu == 3:
        print ('Лалала')
Он вечно выводит "Введите число", не обращая внимания на вводимые цифры
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2013, 13:18
Ответы с готовыми решениями:

Как сделать ветвление if...elif...else...fi?
Доброго времени суток. Требуется написать скрипт, используя конструкции if/else/elif/fi. Пользователя спрашивают, что он больше любит -...

Как работают ветвления if, elif, else?
А почему на строке с elif показывает ошибку?x=input('Введите строку ') s=len(x) if s>10: print('Строка длиннее 10 символов') ...

Задача селектор ресторанов, как написать используя if elif else
Помогите решить!!! Селектор ресторанов. На вашу встречу выпускников собирается прибыть группа ваших друзей, и вы хотите их повести в...

13
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
17.10.2013, 13:57
Интерпретатор тебе все честно делает, у тебя в коде нет присваивания переменной lalala значения true, поэтому выход из цикла не происходит.
Python
1
2
3
4
5
6
7
8
9
10
lalala = False
while lalala is False:
    tututu = input ('Введите число ')
    if tututu == 1:
        print ('Лалала')
    elif tututu == 2:
        print ('Траляля')
        lalala = True
    elif tututu == 3:
        print ('Лалала')
= это оператор присваивания, а вот == это оператор сравнивания.

Учи мат часть
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 4
17.10.2013, 17:31  [ТС]
Вот как раз учу. Спасибо, учел)
Исправил всё, как вы сказали, но по сути выдает то же самое, "Введите число" и какое бы число не ввел снова "Введите число"... То есть if else он не воспринимает, делает только tututu = input
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.10.2013, 19:27
Цитата Сообщение от alkuol Посмотреть сообщение
Исправил всё, как вы сказали, но по сути выдает то же самое
Python
1
    tututu = int(input('Введите число '))
1
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 4
17.10.2013, 19:47  [ТС]
accept, спасибо, работает!
А теперь не могли бы вы объяснить, в чем была проблема, разве 1, 2 или 3 по умолчанию не является целочисленным значением?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.10.2013, 19:51
Цитата Сообщение от alkuol Посмотреть сообщение
разве 1, 2 или 3 по умолчанию не является целочисленным значением?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> input()
1
'1'
>>> input()
a
'a'
>>> int(input())
1
1
>>> int(input())
a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>>
в третьем питоне ввод воспринимается как строка
во втором питоне выполняется eval() ещё (небезопасно)
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
17.10.2013, 19:51
Цитата Сообщение от alkuol Посмотреть сообщение
А теперь не могли бы вы объяснить, в чем была проблема, разве 1, 2 или 3 по умолчанию не является целочисленным значением?
Если можно, я отвечу. input возвращает строку, а Вы сравниваете строку с числом. Естественно строка не равна числу(можете проверить поставив else, этот блок всегда будет срабатывать).
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
17.10.2013, 20:05
Цитата Сообщение от alkuol Посмотреть сообщение
То есть if else он не воспринимает, делает только tututu = input
Указывайте версию python в следующий раз.
Я просто пользуюсь второй версией и у меня соответственно все нормально было.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.10.2013, 20:36
Цитата Сообщение от tsar925 Посмотреть сообщение
Я просто пользуюсь второй версией
и ставишь скобки у print
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
17.10.2013, 20:43
Цитата Сообщение от accept Посмотреть сообщение
и ставишь скобки у print
Я скопировал код выложеный alkuol, и подправил его. Ну и вообще-то как ты и сам знаешь, ни кто не запрещает во втором python использовать print со скобками.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.10.2013, 20:53
Цитата Сообщение от tsar925 Посмотреть сообщение
ни кто не запрещает во втором python использовать print со скобками.
но они там не нужны, если код нормальный
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
17.10.2013, 21:18
Цитата Сообщение от accept Посмотреть сообщение
но они там не нужны, если код нормальный
Ни где не сказано, что нельзя использовать скобки у print в python2.x или, что это является плохим тоном. Так что не понимаю к чему ваши придирки.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.10.2013, 22:30
Цитата Сообщение от tsar925 Посмотреть сообщение
Ни где не сказано, что нельзя использовать скобки у print в python2.x
это лишние скобки, никто их не использует, потому что выражение в скобках вычисляется
то есть ты делаешь лишнее вычисление выражения в скобках, потому что в самом начале не заметил их там

а то, что нельзя преумножать сущности без необходимости, - это общий принцип в программировании
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 4
18.10.2013, 10:39  [ТС]
Всем спасибо за ответы !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2013, 10:39
Помогаю со студенческими работами здесь

Elif в Python 3.5.2
простенькая задачка: if pH==7.0: print (pH,&quot;Water&quot;) elif 7.36&lt;pH&lt;7.44: print(pH,&quot;Blood&quot;) Не могу понять, почему...

Не работает elif
Добрый день. Прошу не судить строго, второй день читаю книгу. Решил вот сбацать генератор паролей, if нормально отрабатывает, с elif...

Не срабатывает elif
Здравствуйте. Такая проблема- if срабатывает не зависимо от истинности (либо выдает ошибку) и elif не срабатывает вообще #словарь у...

Блок-схема if-elif
Задание создать бок-схему для программы рассчитывающей показатели тела человека, программу прописал а вот с блок-схемой проблема, первый...

Python 3.2 оператор if else elif
Ввожу пример из книги саммерфилда : x=int(input()) if x&lt;100: print(&quot;medium&quot;) else: print(&quot;large&quot;) подчеркивает else как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru