Вопрос по python – Как использовать несколько строковых аргументов в Python

-2

Я хочу передать два параметра в мою строку, используя% s.

Я попробовал это, но это не сработало:

title = "im %s with %s"
title % "programming" % "python"

это дает эту ошибку:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string

У тебя есть идея? Спасибо

Это то, что вы отвечаете, глядя в то же место, где вы обнаружили, что есть% операция на первом месте. Karl Knechtel

Ваш Ответ

3   ответа
8

title = "im %s with %s"
title % ("programming", "python")

% Оператор принимает два операнда:

the format string goes on the left-hand side; the tuple containing all the arguments goes on the right-hand side (if there's only one parameter, it can be a scalar).
Error: User Rate Limit Exceeded ilias
Error: User Rate Limit Exceeded ilias
5

проблему лучше всего понять, разобрав, как работают эти директивы форматирования. Основная идея заключается в том, что каждый% в строке означает, что аргумент должен быть впоследствии передан в строку.

Например, это будет работать:

title = "i'm %s with %s" % ('programming', 'python')

и дать

"i'm programming with python"

'S' в%s означает, что это заполнитель для строки. A 'd' будет для целых чисел, 'f' для поплавков и т. д. Есть также дополнительные параметры, которые вы можете указать. Увидетьэти документы.

Если вы не предоставите достаточно товаров для каждого держателя, это приведет кnot enough arguments for format string сообщение.

Ваш конкретный пример сначала создает строковую константу, в которой есть две директивы форматирования. Затем, когда вы используете его, вам нужно будет предоставить для него два предмета.

Другими словами,

title = "i'm %s with %s"
title % ('programming', 'python')

становится

"i'm %s with %s" % ('programming', 'python')
1

Вы также можете использовать что-то вроде:

title = "im %(doing)s with %(with)s"
title % {'doing': 'programming', 'with': 'python'}

или же:

title = "im %(doing)s with %(with)s" % {'doing': 'programming', 'with': 'python'}

Где вместо% s вы используете% (ваш словарный ключ) s и вместо кортежа вы передаете dict после оператора по модулю.

ПроверьтеОперации форматирования строки

Похожие вопросы