Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 9, 2018 16:34:34

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

try-except

Мне интересно кое-что. Так как питон язык интерпретируемый и код в нем выполняется почти построчно, что если:

 try:
    print('trying doing some stuff')
    raise RuntimeError
except: print('failed')
По идее тут должен высвечиватся trying doing some stuff и потом failed, но получается только failed. Как питон тогда проверяет будет ошибка, или нет. А если напрмер:
 try:
    print('attempt')
    somefunction()  # это вызовет ошибку runtimeerror
except: print('failed')
Как тут-то он понимает, что будет ошибка? Воспроизводит работу этого учатстка кода в какой-нибудь виртуалке? ОК, а если функция взяимодействует с базой данный, и 2ой запуск приведет к ошибке. Что тогда то?



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#2 Авг. 9, 2018 16:40:24

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

try-except

DamMercul
По идее тут должен высвечиватся trying doing some stuff и потом failed, но получается только failed.
Дык так оно и печатает
 try:
    print('trying doing some stuff')
    raise RuntimeError
except: print('failed')
>>> 
trying doing some stuff
failed
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Авг. 9, 2018 16:41:31

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

try-except

PEHDOM
Страааанннооо, у меня только failed показал (примерно)



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#4 Авг. 9, 2018 23:36:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9727
Репутация: +  843  -
Профиль   Отправить e-mail  

try-except

У print() есть аргумент flush. Сначала выполни help(print), прочитай там всё. Дальше используй flush=True при вызове.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version