Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2014 09:30:36

Suliman
Зарегистрирован: 2013-06-18
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменить значение print в зависимости от True\False

Как на Питоне красиво изменить вывод print в зависимости от булевого значений.

Суть. В коде определил:

self.megabite_count = True # Calculate in Megabites. If NO calculate in Gigabits

далее я считаю размер директории и вывожу ее на экран
print "Amusing size: %s" %(amusingsize)
Как мне чтобы не городить кучу лишних блоков if/else выводить MB или GB в зависимости от значения megabite_count ?

Есть какой-то красивый вариант?

Была идея сделать так:
 print ("Amusing size: %s") %(if(amusingsize) "GB" else "MB") 
Типа если amusingsize True то передаем GB иначе MB

Отредактировано Suliman (Авг. 28, 2014 09:51:28)

Офлайн

#2 Авг. 28, 2014 10:07:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Изменить значение print в зависимости от True\False

["GB", "MB"][megabite_count]



Офлайн

#3 Авг. 28, 2014 10:14:28

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

Изменить значение print в зависимости от True\False

Ещё способ.

>>> n = True
>>> '1 {}'.format(n and 'Mb' or 'Gb')
'1 Mb'
>>> n = False
>>> '1 {}'.format(n and 'Mb' or 'Gb')
'1 Gb'
>>>



Офлайн

#4 Авг. 28, 2014 10:20:16

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Изменить значение print в зависимости от True\False

Suliman
print (“Amusing size: %s”) %(if(amusingsize) “GB” else “MB”)
Не так, а так:
print("Amusing size: {}".format("GB" if amusingsize else "MB")) 



Отредактировано Budulianin (Авг. 28, 2014 10:20:46)

Офлайн

#5 Авг. 28, 2014 10:27:05

Suliman
Зарегистрирован: 2013-06-18
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменить значение print в зависимости от True\False

FishHook
["GB", "MB"][megabite_count]
А где про этот вариант почитать? Точнее про этот синтаксис.

Отредактировано Suliman (Авг. 28, 2014 10:27:33)

Офлайн

#6 Авг. 28, 2014 10:29:39

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Изменить значение print в зависимости от True\False

Suliman
А где про этот вариант почитать? Точнее про этот синтаксис.

Вот здесь и читай. Тут никакой магии нет.

Тернарный оператор



Отредактировано Budulianin (Авг. 28, 2014 10:31:36)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version