Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 17, 2015 08:43:13

BearPro
Зарегистрирован: 2015-09-09
Сообщения: 46
Репутация: +  0  -
Профиль   Адрес электронной почты  

%x в строках

Читаю книгу Марка Лутца “Изучаем Python”. В главе про классы встретил конструкцию:
'Current value = “%s”' % self.data
Объясните пожалуйста, как эта собака работает? Я понял, что на место %s вставляется значение из self.data, но почему %s а не, напрмер, %a? Хотя заменив %s на %a я получил такой же итог… Объясните дураку?

Офлайн

#2 Ноя. 17, 2015 09:13:02

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

%x в строках

BearPro
Я понял, что на место %s вставляется значение из self.data, но почему %s а не, напрмер, %a?
Буква s в %s - это сокращение от “string” (строка). То есть указание, что на месте %s должна быть выведена строка. А также это удобно для тех, кто пришел в Python из языка C. Там точно так же %s используется в printf() и других подобных функциях.

Офлайн

#3 Ноя. 17, 2015 09:16:28

BearPro
Зарегистрирован: 2015-09-09
Сообщения: 46
Репутация: +  0  -
Профиль   Адрес электронной почты  

%x в строках

Ещё вопрос: Я, получается, могу только одну строку так обозначить за раз? А так я в принципе понял, благодарю.

Офлайн

#4 Ноя. 17, 2015 09:44:31

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

%x в строках

Одна строка может быть один символ ('a'), одно слово ('hello'), группа слов ‘hello, world’ - все, что между открывающей и закрывающей кавычками строкового литерала. Можно даже целый текстовый файл с диска прочитать в одну строку и вывести его одним print' ом. Также при вызове print нет ограничений на количество %s. Например, ‘hello, world’ можно вывести и так:

>>> x = 'hello'
>>> y = 'world'
>>> print("%s, %s" % (x, y))
hello, world
>>> 

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version