我有一个包含%的字符串,我也想使用%s用变量替换该字符串的一部分。像
这样的东西name = 'john'
string = 'hello %s! You owe 10%.' % (name)
但是当我运行它时,我得到了
not enough arguments for format string
我很确定这意味着python认为我试图在字符串中插入多于一个变量,但只包括一个。我该如何克服这个问题?谢谢!
答案 0 :(得分:8)
您可以使用此语法在字符串中使用%
,方法是使用另一个%
转义它:
>>> name = 'John'
>>> string = 'hello %s! You owe 10%%.' % (name)
>>> string
'hello John! You owe 10%.'
更多关于:String Formatting Operations - Python 2.x documentation
<小时/> 正如@Burhan在我的帖子后添加的那样,您可以使用
format
语法recommended by Python 3绕过此问题:
>>> name = 'John'
>>> string = 'hello {}! You owe 10%'.format(name)
>>> string
'Hello John! You owe 10%'
# Another way, with naming for more readibility
>>> string = 'hello {name}! You owe 10%.'.format(name=name)
>>> str
'hello John! You owe 10%.'
答案 1 :(得分:0)
除了Maxime发布的内容之外,您还可以执行此操作:
>> name = 'john'
>>> str = 'Hello {}! You owe 10%'.format(name)
>>> str
'Hello john! You owe 10%'