在Python中打印多个参数

这只是我的代码片段:

print("Total score for %s is %s ", name, score) 

但我希望它打印出来:“(名称)的总分是(分数)”,其中名称是列表中的variables,分数是整数。 这是python3.3如果有所帮助。

把它作为一个元组来传递:

 print("Total score for %s is %s " % (name, score)) 

或者使用新的string格式:

 print("Total score for {} is {}".format(name, score)) 

或者传递值作为参数, print将做到这一点:

 print("Total score for", name, "is", score) 

如果不想通过print自动插入空格,请更改sep参数:

 print("Total score for ", name, " is ", score, sep='') 

如果您使用的是Python 2,那么您将无法使用最后两个,因为print不是Python 2中的函数。但是,您可以从__future__导入此行为:

 from __future__ import print_function 

有很多方法可以打印。

让我们来看看另一个例子。

 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 {0} and {1} is {2}".format(a,b,c)) #in case you want to use repr() print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c)) 

保持简单,我个人喜欢string连接:

 print("Total score for " + name + " is " + score) 

它适用于Python 2.7和3.X.

注意:如果score是一个int ,那么你应该把它转换为str

 print("Total score for " + name + " is " + str(score)) 

你试一试:

 print ( "Total score for", name,"is", score ) 

在py 3.6 f-string更清洁

在较早的版本中:

 print("Total score for %s is %s " % (name, score)) 

在py 3.6中:

 print(f'Total score for {name} is {score}') 

会做。

更高效和优雅。

 print("Total score for %s is %s " % (name, score)) 

%s可以被%d%f代替

如果score是一个数字,那么

 print("Total score for %s is %d" % (name, score)) 

如果分数是一个string,那么

 print("Total score for %s is %s" % (name, score)) 

如果score是一个数字,那么它是%d ,如果它是一个string,那么它是%s ,如果score是一个float,那么它是%f

只要按照这个

 idiot_type= "biggest idiot" year= 22 print("I have been {} for {} years ".format(idiot_type,years)) 

要么

 idiot_type= "Biggest idiot" year= 22 print("I have been %s for %s years "% (idiot_type,year)) 

而忘记所有其他人的大脑不会能够映射所有的格式。

这就是我所做的:

 print("Total score for " + name + " is " + score) 

记得在之后和之前和之后放置一个空间。 快乐的编码。