Print multiple arguments in Python
这只是我的代码片段:
1 | print("Total score for %s is %s ", name, score) |
但我想把它打印出来:
"Total score for (name) is (score)"
其中
有很多方法可以做到这一点。要使用
将其作为元组传递:
1 | print("Total score for %s is %s" % (name, score)) |
一个只有一个元素的元组看起来像
以下是一些其他常见的方法:
将其作为字典传递:
1 | print("Total score for %(n)s is %(s)s" % {'n': name, 's': score}) |
还有新样式的字符串格式,可能更容易阅读:
使用新样式字符串格式:
1 | print("Total score for {} is {}".format(name, score)) |
将新样式的字符串格式与数字一起使用(用于对同一字符串进行多次重新排序或打印):
1 | print("Total score for {0} is {1}".format(name, score)) |
使用具有显式名称的新样式字符串格式:
1 | print("Total score for {n} is {s}".format(n=name, s=score)) |
连接字符串:
1 | print("Total score for" + str(name) +" is" + str(score)) |
我认为最清楚的两个:
只需将值作为参数传递:
1 | print("Total score for", name,"is", score) |
如果在上面的示例中不希望
1 | print("Total score for", name," is", score, sep='') |
如果您使用的是python 2,那么就不能使用最后两个,因为
1 | from __future__ import print_function |
在python 3.6中使用新的
1 | print(f'Total score for {name} is {score}') |
有很多方法可以打印它。
让我们用另一个例子来看看。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | a = 10 b = 20 c = a + b #Normal string concatenation print("sum of", a ,"and" , b ,"is" , c) #convert variable into str print("sum of" + str(a) +" and" + str(b) +" is" + str(c)) # if you want to print in tuple way print("Sum of %s and %s is %s:" %(a,b,c)) #New style string formatting print("sum of {} and {} is {}".format(a,b,c)) #in case you want to use repr() print("sum of" + repr(a) +" and" + repr(b) +" is" + repr(c)) EDIT : #New f-string formatting from Python 3.6: print(f'Sum of {a} and {b} is {c}') |
用途:
1 | print("Total score for {0} is {1}".format(name, score)) |
或:
1 2 3 | // Recommended, more readable code print("Total score for {n} is {s}".format(n=name, s=score)) |
或:
1 | print("Total score for" + name +" is" + score) |
或:
1 | `print("Total score for %s is %d" % (name, score))` |
在python 3.6中,
在早期版本中:
1 | print("Total score for %s is %s." % (name, score)) |
在Python 3.6中:
1 | print(f'Total score for {name} is {score}.') |
会的。
它更高效,更优雅。
保持简单,我个人喜欢字符串连接:
1 | print("Total score for" + name +" is" + score) |
它与Python2.7和3.x都可以使用。
注:如果分数是int,则应将其转换为str:
1 | print("Total score for" + name +" is" + str(score)) |
试一试:
1 | print("Total score for", name,"is", score) |
跟着这个走
1 2 3 | idiot_type ="the biggest idiot" year = 22 print("I have been {} for {} years".format(idiot_type, years)) |
或
1 2 3 | idiot_type ="the biggest idiot" year = 22 print("I have been %s for %s years."% (idiot_type, year)) |
忘记所有其他的,否则大脑就无法映射所有的格式。
如果
1 | print("Total score for %s is %d" % (name, score)) |
如果分数是一个字符串,那么
1 | print("Total score for %s is %s" % (name, score)) |
如果分数是数字,那么它是
1 | print("Total score for %s is %s " % (name, score)) |
使用
1 | print(f'Total score for {name} is {score}') |
或
使用
1 | print("Total score for {} is {}".format(name, score)) |
我就是这样做的:
1 | print("Total score for" + name +" is" + score) |
记住在