打印包含字符串和其他2个变量的变量

Bla*_*ank 9 python string variables python-3.x

var_a = 8
var_b = 3

var_c = "hello my name is:",var_a,"and",var_b,"bye"
print(var_c)
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,var_c被打印出来像这样:('你好我的名字是:',8,'和',3,'再见')但是所有的括号等也被打印出来,为什么这样,有没有摆脱那些符号的方法?

如果我像这样运行程序:

print("hello my name is:",var_a,"and",var_b,"bye")
Run Code Online (Sandbox Code Playgroud)

我没有那个问题

Ale*_*der 7

您可以格式化字符串以获得预期的字符串输出.

var_c = "hello my name is: {} and {}, bye".format(var_a, var_b)
Run Code Online (Sandbox Code Playgroud)

如评论所示,您的现有输出是由于变量作为元组返回,而您希望它作为一个字符串.


skr*_*krx 7

在Python 3.6+中,您可以使用新的f-strings(格式化的字符串文字):

var_c = f"hello my name is: {var_a} and {var_b}, bye"
Run Code Online (Sandbox Code Playgroud)


Jea*_*bre 6

var_c实际上是一个元组,所以print就这样解释它,你就可以打印它的表示.

var_a = 8
var_b = 3
var_c = "hello my name is:", var_a, "and", var_b, "bye"
Run Code Online (Sandbox Code Playgroud)

但你可以告诉print使用元组作为参数*

print(*var_c)
Run Code Online (Sandbox Code Playgroud)

结果:

hello my name is: 8 and 3 bye
Run Code Online (Sandbox Code Playgroud)

(当然这是理论上的,最好用str.format其他答案说)


tan*_*din 0

var_c = "hello my name is:",var_a,"and",var_b,"bye"
Run Code Online (Sandbox Code Playgroud)

通过这一行,您将 var_c 作为元组...使其成为字符串,使其像

var_d = "hello my name is:%s and %s bye" % (var_a,var_b)
print(var_d)
Run Code Online (Sandbox Code Playgroud)

它会输出

hello my name is:8 and 3 bye
Run Code Online (Sandbox Code Playgroud)