Помогите пожалуйста, не могу понять else

Roma

Новичок
Пользователь
Авг 9, 2020
11
0
1
Здравствуйте, я начинающий программист.Вот тренировался и столкнулся с такой проблемой:
info = ("День программиста - 256 день в году.")
password = "123"
running = True

while running:
password_word = input("Введите пароль: ")
if password_word == password:
print(info)
running = False

else:
print("Вы ввели неверный пароль!")

В conEmu выводит при правильном пароле: вот это инфо и под ним неверный пароль!
А при неправильном, просто ещё раз: Введите пароль:
Подскажите пожалуйста как сделать чтоб при неправильном пароле выводилось:Вы ввели неправильный пароль
Заранее спасибо!
 

hellhyde

Новичок
Пользователь
Июл 28, 2020
28
4
3
Здравствуйте, я начинающий программист.Вот тренировался и столкнулся с такой проблемой:
info = ("День программиста - 256 день в году.")
password = "123"
running = True

while running:
password_word = input("Введите пароль: ")
if password_word == password:
print(info)
running = False

else:
print("Вы ввели неверный пароль!")

В conEmu выводит при правильном пароле: вот это инфо и под ним неверный пароль!
А при неправильном, просто ещё раз: Введите пароль:
Подскажите пожалуйста как сделать чтоб при неправильном пароле выводилось:Вы ввели неправильный пароль
Заранее спасибо!
Password возьми в кавычки 'password' так будет проверка строки
Убери переменную running Напиши просто
while True:
If password_word == 'password'
print(info)
Break
Else:
Print('пароль не верный')

Как то так
 

hellhyde

Новичок
Пользователь
Июл 28, 2020
28
4
3
Здравствуйте, я начинающий программист.Вот тренировался и столкнулся с такой проблемой:
info = ("День программиста - 256 день в году.")
password = "123"
running = True

while running:
password_word = input("Введите пароль: ")
if password_word == password:
print(info)
running = False

else:
print("Вы ввели неверный пароль!")

В conEmu выводит при правильном пароле: вот это инфо и под ним неверный пароль!
А при неправильном, просто ещё раз: Введите пароль:
Подскажите пожалуйста как сделать чтоб при неправильном пароле выводилось:Вы ввели неправильный пароль
Заранее спасибо!
Python:
password = 'password'
info = ("День программиста - 256 день в году.")
while True:
    x = input('Введите пароль: ')
    if x == password:
        print(info)
        break
    else:
        print('Введеный пароль не верный')
 

lynulx

Модератор
Команда форума
Модератор
Авг 9, 2020
139
19
18
Здравствуйте, я начинающий программист.Вот тренировался и столкнулся с такой проблемой:
info = ("День программиста - 256 день в году.")
password = "123"
running = True

while running:
password_word = input("Введите пароль: ")
if password_word == password:
print(info)
running = False

else:
print("Вы ввели неверный пароль!")

В conEmu выводит при правильном пароле: вот это инфо и под ним неверный пароль!
А при неправильном, просто ещё раз: Введите пароль:
Подскажите пожалуйста как сделать чтоб при неправильном пароле выводилось:Вы ввели неправильный пароль
Заранее спасибо!

else срабатывает когда условие в while становится False, а после того, как ты выводишь info ты не просто обрываешь цикл, а делаешь условием False, так что и else вызывается.


while True:
----if input() == "123":
--------print("День программиста - 256 день в году.")
--------break
----else:
--------print("неверный пароль")
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Поэтому код надо вставлять с форматированием. Откуда мы знаем, у него else под if-ом, или под while-ом. Специально же тут есть в панели форматирования: три точки - код.
 

hellhyde

Новичок
Пользователь
Июл 28, 2020
28
4
3
else срабатывает когда условие в while становится False, а после того, как ты выводишь info ты не просто обрываешь цикл, а делаешь условием False, так что и else вызывается.


while True:
----if input() == "123":
--------print("День программиста - 256 день в году.")
--------break
----else:
--------print("неверный пароль")
Else срабатывает тогда,когда в if нету подходящего
А while тут играет роль бесконечного цикла,пока его не прервать тогда,когда этого требует условие
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Python:
info = ("День программиста - 256 день в году.")
password = "123"
running = True

while running:
    password_word = input("Введите пароль: ")
    if password_word == password:
        print(info)
        running = False
    else:
        print("Вы ввели неверный пароль!")
Что вы придумываете? Все там правильно написано у него.
Screenshot 2020-08-10 at 18.04.04.png
 
  • Мне нравится
Реакции: overpathz

Jaggernik

Новичок
Пользователь
Авг 10, 2020
2
0
1
еслу else выравнен по while, то else выполняется после всех итераций обязательно, в твоём случае else должен быть внутри блока while на равне с if
 

lynulx

Модератор
Команда форума
Модератор
Авг 9, 2020
139
19
18
Else срабатывает тогда,когда в if нету подходящего
А while тут играет роль бесконечного цикла,пока его не прервать тогда,когда этого требует условие
смотри на табуляции, в данном случае else срабатывает, когда в условии while нет подходящего.


upd: погоди, да, туплю, тут else как раз на уровне c if, так что все как ты описал
 

Форум IT Специалистов