Python格式字符串中的%s是什么意思?
%s
在Python中是什么意思?下面这段代码是干什么的呢?
比如说……
if len(sys.argv) < 2:
sys.exit('Usage: %s database-name' % sys.argv[0])
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
8 个回答
36
在Python 2.6中引入了format
方法。这个方法功能更强大,而且使用起来也没有太复杂:
>>> "Hello {}, my name is {}".format('john', 'mike')
'Hello john, my name is mike'.
>>> "{1}, {0}".format('world', 'Hello')
'Hello, world'
>>> "{greeting}, {}".format('world', greeting='Hello')
'Hello, world'
>>> '%s' % name
"{'s1': 'hello', 's2': 'sibal'}"
>>> '%s' %name['s1']
'hello'
153
为了更好地帮助你,这里有一个在一个字符串中使用多种格式的方法:
"Hello %s, my name is %s" % ('john', 'mike') # Hello john, my name is mike".
如果你使用的是整数而不是字符串,那么就用 %d 代替 %s。
"My name is %s and I'm %d" % ('john', 12) #My name is john and I'm 12
250
这是一种字符串格式化的语法(它是从C语言借来的)。
请查看“PyFormat”:
Python支持将值格式化为字符串。虽然这可以包含非常复杂的表达式,但最基本的用法是用
%s
占位符将值插入到字符串中。
这里有一个非常简单的例子:
#Python 2
name = raw_input("who are you? ")
print "hello %s" % (name,)
#Python 3+
name = input("who are you? ")
print("hello %s" % (name,))
这个%s
标记让我可以插入(并可能格式化)一个字符串。注意,%s
标记会被我在%
符号后面传入的内容替换。还要注意,我在这里使用了一个元组(当你只有一个字符串时,使用元组是可选的),这说明可以在一个语句中插入和格式化多个字符串。