Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2016 04:53:31

roggerg
Зарегистрирован: 2015-03-12
Сообщения: 61
Репутация: +  0  -
Профиль   Отправить e-mail  

Метод format

Всем привет.
В книге Лунц М. “Изучаем питон” , на стр. 240 есть такой пример

 somelist = list('SPAM')
'first={0[0]}, third={0[2]}'.format(somelist)
Но я не где не нашел обьяснения что означает первый ноль,

понятно что идет обращение к индексу в списке но почему это сделано так а не так например

 first={somelist[0]}




,

Отредактировано roggerg (Авг. 9, 2016 04:28:27)

Офлайн

#2 Авг. 8, 2016 05:27:57

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

Метод format

roggerg
Но я не где не нашел обьяснения что означает первый ноль в выражении
python.org. format



Офлайн

#3 Авг. 8, 2016 08:32:24

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Метод format

я тоже не понял что это дает

 somelist = list('SPAM')
'first={0}, third={0}'.format(somelist)
first=['S', 'P', 'A', 'M'], third=['S', 'P', 'A', 'M']
ведь аргумент то всего один это список somelist и больше ничего и кроме вывода этого списка ничего не получиться. вот если его распаковать то можно получать аргументы формат элементы списка по индексу
 somelist = list('SPAM')
print('first={0}, third={2}'.format(*somelist))
first=S, third=A

Офлайн

#4 Авг. 8, 2016 09:00:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Метод format

marvellik
я тоже не понял что это дает
Т.Е. вы считаете что способ примененный в языке необоснован?
Но тогда чтобы пояснить вашу мысль напишите

делалось так
 'first={0}, third={1}'.format(somelist[0],somelist[1])
хочу так:
 somelist=[1,2,3]
f'first={somelist[0]}, third={somelist[1]}'
чтобы было понятно что вам непонятно.



Офлайн

#5 Авг. 8, 2016 09:36:17

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

Метод format

marvellik
я тоже не понял что это дает
Он просто вставил без тегов кода. А когда вставляешь без тегов кода, форум удаляет квадратные скобки (думает, что это теги какие-то). Поэтому он вставлял одно рабочее, а получилось другое тоже рабочее.



Отредактировано py.user.next (Авг. 8, 2016 09:36:30)

Офлайн

#6 Авг. 8, 2016 17:08:30

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Метод format

doza_and
doza_and
я из вопроса автора исходил о непонятках где написан такой вариант ‘first={0}, third={0}’.format(somelist). ваш варианты совершенно понятны когда аргументами являются элементы списка взятые по индексу

Отредактировано marvellik (Авг. 8, 2016 17:10:25)

Офлайн

#7 Авг. 9, 2016 04:30:18

roggerg
Зарегистрирован: 2015-03-12
Сообщения: 61
Репутация: +  0  -
Профиль   Отправить e-mail  

Метод format

Я поправил код, т.к. он был неправильно оформлен.
Вопрос осталься в силе.

Офлайн

#8 Авг. 9, 2016 09:35:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Метод format

roggerg
Вопрос осталься в силе.
roggerg
но почему это сделано так а не так например
Потому что функция не знает имени объекта который ей передали (общее свойство всех функций питона), поэтому не может знать что его звали somelist
А вот имена переданных ключей она знает поэтому можно сделать:
 'first={somelistX[0]}, third={somelistX[2]}'.format(somelistX=somelist)
Вопрос о неявной интерполяции окружения обсуждается
https://www.python.org/dev/peps/pep-0498/
Но есть и сторонники и много противников.

roggerg
Но я не где не нашел обьяснения что означает первый ноль,
Это номер аргумента метода format
 "{0},{1},{2}".format("a","b","c")
>>> "a,b,c"



Отредактировано doza_and (Авг. 9, 2016 09:38:39)

Офлайн

#9 Авг. 9, 2016 10:37:53

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

Метод format

doza_and
Вопрос о неявной интерполяции окружения обсуждается
Оно уже реализовано в версии 3.6, которая ещё не вышла.
python.org. 3.6 what's new



Офлайн

#10 Авг. 9, 2016 22:53:48

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Метод format

py.user.next
Оно уже реализовано
Да но вот докустимо его использовать или нет это вопрос. В разных командах по разному. Может быть так что это не будет приветствоваться в том коллективе с которым ТС будет общаться.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version