Задать вопрос
enempluie
@enempluie
Познающий

Как использовать перменную, иницилизированную в if?

Суть вопроса такова, нужно, что бы переменная t2, иницилизированная в первом блоке if, была доступна для следующего блока if, не совсем понимаю как называются такие перменные, возможно "глобальные".
x = 60 * int(input("How much hours need you for sleep?: "))
h = 60 * int(input("What time did you go to bed?: "))
m = int(input("+ minutes: "))
t = x+h+m
m1 = t

if t // 60 > 24:
    t2 = t // 60 - 24

if t2 < 12 and (m1 % 60) >= 0:
    print(t2, ":", m1 % 60, "AM")
else:
    print(t2,":",m1 % 60,"PM")

Пробовал сначала иницилизировать перед if:
x = 60 * int(input("How much hours need you for sleep?: "))
h = 60 * int(input("What time did you go to bed?: "))
m = int(input("+ minutes: "))
t = x+h+m
m1 = t
t2 = 0
if t // 60 > 24:
    t2 = t // 60 - 24

if t2 < 12 and (m1 % 60) >= 0:
    print(t2, ":", m1 % 60, "AM")
else:
    print(t2,":",m1 % 60,"PM")

Но изменения из if всё равно не переходят в другие "блоки" и t2 так и остаётся нулём при выводе else.
Ps. прошу простить за незнание терминалогии, новичёк же.
  • Вопрос задан
  • 232 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Я так подозреваю - вам нужно что-то вроде:

x = 60 * int(input("How much hours need you for sleep?: "))
h = 60 * int(input("What time did you go to bed?: "))
m = int(input("+ minutes: "))
t = x+h+m
m1 = t

t2 = t // 60 - 24 if t // 60 > 24 else  t // 60

if t2 < 12 and (m1 % 60) >= 0:
    print(t2, ":", m1 % 60, "AM")
else:
    print(t2,":",m1 % 60,"PM")

Вы в логике своей программы разберитесь. Что чему присваиваете и зачем.
Глобальные переменные тут не при чем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы