Как создать переменную в if?
Начал изучать питон, нужно создать переменную в if, тобишь что бы она создалась только после "определённых обстоятельств" и что бы её можно было использовать "обстоятельством" для следующего if. Нашёл что-то только на англоязычном форуме, но не понял.
print('Старт')
b = input('какой сейчас год?')
if b == '2021':
print('правильно')
else:
g = print('неправильно') тут я попытался создать переменную
c = input('какой сейчас век?')
if c == '21':
print('правильно')
elif 'g' in locals(): тут я попытался понять создалась ли она
print('опять неправильно')
else:
print('неправильно')
Надо сделать так, что бы если в первом вопросе ответ неправильный, то во втором на неправильный ответ написало бы "опять неправильно", а не просто "неправильно", но при этом если ответ на первый вопрос верный, то поле неверного во втором надо написать просто "неправильно", без "опять"
Ответы (3 шт):
Вот так
if определенные обстоятельства:
x = 1
С учетом вашего кода в вопросе: там все сделано верно, только непонятно, что вы хотите получить в g.
В питоне обычно это делают так (ибо "явное лучше, чем неявное"):
someInfo = None
if условие:
someInfo = "какая-то информация"
if someInfo:
print(someInfo)
Используемые переменные лучше всё-таки инициализировать в любом случае. Для того, чтобы обозначить тот факт, что в переменной пока нет никакого осмысленного значения и потом этот факт легко можно было проверить через if, в питоне используется специальное значение None.
В дополнение к сказанному ваше решение, если вам не надо хранить значения ответов, а просто выдать текст ))
pre_text = "" if input('какой сейчас год?: ') == '2021' else "опять"
print(f"{'не' if pre_text else ''}правильно")
print(f"{ '' if input('какой сейчас век?': ) == '21' else pre_text + ' не '}правильно ")
Можно и в одну строчку, но тогда я сам не прочитаю, что там происходит после того, как написал ))).
Итак, код pre_text = "" if input('какой сейчас год?: ') == '2021' else "опять" всегда создает специфическую переменную pre_text, но по ее значению вам понятно, что дальше с этим делать .