Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2011 08:59:07

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно писать if?

Добрый день! У меня в коде встречаются вот такие куски:

if a:
return "Hello!"
return "Bye!"
Собственно, сабж: как грамотней/понятней писать? Так, как у меня или так:
if a:
return "Hello!"
else:
return "Bye!"



Офлайн

#2 Июль 7, 2011 09:25:22

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Как правильно писать if?

return "Hello!" if a else "Bye!"



Офлайн

#3 Июль 7, 2011 09:29:09

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно писать if?

Так не пойдёт, потому что перед return у меня есть ещё одна строка:

if a:
print "ololo"
return "Hello!"
print "lolol"
return "Bye!"



Офлайн

#4 Июль 7, 2011 09:52:45

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно писать if?

Имхо лучше как-то так:

if a:
msg = 'ololo'
res = 'Hello!'
else:
msg = 'lolol'
res = 'Bye!'

print msg
return res
Не будет проблем когда нужно будет еще какие-то варианты добавить.



Офлайн

#5 Июль 7, 2011 16:04:52

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Как правильно писать if?

Carzil, я придерживаюсь самого первого варианта. При условии что разрыв между возвратами не велик (2-3 строки) или же первый находится в самом начале подпрограммы, а второй в самом её конце.

..bw



Офлайн

#6 Июль 8, 2011 01:04:33

kachayev
От:
Зарегистрирован: 2011-07-08
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно писать if?

Можно еще сократить:

msg, res = ('ololo', 'Hello') if a else ('lolol', 'Bye!')
print msg
return res
Imho, такой вариант удачнее, так как в коде приведенном Carzil в if и else блоках выполняется по сути одна и та же логика (только с разными деталями), но визуально нужно сделать усилие, что это осознать.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version