Форум сайта python.su
print('{}-{}-{}'.format(*[1, 2, 3]))
print('{one}-{two}-{three}'.format(**{'two': 2, 'one': 1, 'three': 3}))
Офлайн
https://tproger.ru/translations/asterisks-in-python-what-they-are-and-how-to-use-them/
Офлайн
Большое спасибо!
Офлайн
> print('{}-{}-{}'.format(*))
Люди! Не пользуйтесь форматом!
>>> print('%i-%i-%i'%(1, 2, 3)) 1-2-3
Офлайн
Rodegastобоснуй
Люди! Не пользуйтесь форматом!
[code python][/code]
Офлайн
“Читаемость имеет значение”
Офлайн
Rodegastну ХЗ, ИМХО особой разницы нет. С точки зрения читаемости f-строки более читабельны чем format или %-форматирование. Но им(f-строкам) нельзя скормить списко/словарь “как есть”.
“Читаемость имеет значение”
[code python][/code]
Отредактировано PEHDOM (Март 30, 2021 15:05:45)
Офлайн
> особой разницы нет
Разница большая, особенно когда пытаются конкатенировать строки при помощи этого формата.
> С точки зрения читаемости f-строки более читабельны
А вот для любителей f-строк в аду приготовлено специальное место.
Офлайн
RodegastРазнотипные аргументы может использовать полиморфно
Разница большая, особенно когда пытаются конкатенировать строки при помощи этого формата.
>>> fmt = '{} {}' >>> >>> [fmt.format(*i) for i in ((1, 2), ('a', 'b'), (1+2j, None))] ['1 2', 'a b', '(1+2j) None'] >>> >>> >>> fmt = '{:10}' >>> >>> list(map(fmt.format, (1, 'a', 1+2j))) [' 1', 'a ', ' (1+2j)'] >>>
>>> fmt = 'User: {user}\nAddress: {address}\nPhone: {phone}' >>> >>> print('\n\n'.join(fmt.format(user=u, address=a, phone=p) ... for u, a, p in (('John', 'Street 123', 123), ... ('Mary', 'Street 456', 456), ... ('Bob', 'Street 789', '555-55-55'),))) User: John Address: Street 123 Phone: 123 User: Mary Address: Street 456 Phone: 456 User: Bob Address: Street 789 Phone: 555-55-55 >>>
Отредактировано py.user.next (Март 30, 2021 21:00:50)
Офлайн
> Также именованные аргументы играют тоже большую роль для ясности кода
Кто тебе запрещает использовать имена в месте с %?
> Часто бывает формат многострочный, а аргументов с десяток. Сообщение бота какое-нибудь с кучей подстановок.
Вот когда будет достаточно сложное форматирование, тогда и пользуйся форматом. Но в других ситуациях он не уместен. За такое прямо убить хочется…
"aaaaa {}".format("bbb")
Офлайн