Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2013 11:32:05

penzu
От: Екатеринбург
Зарегистрирован: 2013-08-08
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Метод строк.

Приветствую Всех. Прошу помощи для осознания небольшого момента в данном кусочке кода.

Есть некоторое выражение(№1):

'%s, eggs, and %s' %('spam','SPAMI')
Результат: spam, eggs, and SPAMI

Так же можно использовать метод(№2):

'{0}, eggs, and {1}'.format('spam','SPAMI')
Результат:spam, eggs, and SPAMI

В случае где мы используем метод, намного понятней, что spam имеет идентификатор {0}, а SPAMI соответственно {1}.

Но у меня возникла непонятка при использовании выражения (код под №1), я конечно понимаю что если смотреть на программную логику что результат получается такой же. Но каким образом он вначале выводит spam, потом SPAMI при одинаковом обозначении %s в описании инструкции выражения. Как он понимает при %s что первым идет spam а следом SPAMI. Или он выводит всё подряд по порядку ?

Офлайн

#2 Авг. 13, 2013 11:40:35

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

Метод строк.

penzu
Или он выводит всё подряд по порядку
Конгениально!



Офлайн

#3 Авг. 13, 2013 11:55:10

penzu
От: Екатеринбург
Зарегистрирован: 2013-08-08
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Метод строк.

Спасибо

Офлайн

#4 Авг. 13, 2013 12:12:13

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

Метод строк.

a='%s, eggs, and %s'
def format(s, *args):
    for param in args:
        s = s.replace("%s", param, 1)
    return s
print format(a, 'spam','SPAMI')



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version