繁体   English   中英

为什么我写的代码不能正常工作?

[英]Why isn't the code I wrote down working properly?

total_price = 0
sneakers = 36.00

total_price += sneakers

print("Total price is" + " " + str(total_price))

print("Total price is" + " " , total_price) << This one doesn`t work properly. 

这两个语句是这样工作的

Total price is 36.0

('Total price is ', 36.0)

为什么第一个和第二个不一样?

将此行用于第二次打印

print("Total price is"+" ", total_price, sep='')

因为打印默认为sep=' '所以添加额外的空间,而如果使用+你在这种情况下连接文本文本(与 printf 相同的参数)

sep就像一个传递给 print 的标志,告诉它什么字符分隔传递给它的不同参数

这可能必须专门在 python 2 上执行。 python 2 上的打印语法是

print ...

而不是 Python 3 中的print(...)

所以第一个与字符串连接有关。 在你的第一行代码中

"Total price is" + " " + str(total_price)

这将产生一个新的字符串"Total price is"" "str(total_price)组合。 (即结果字符串是"Total price is 36.0" )。 它相当于

x = "Total price is" + " " + str(total_price)
print x

请注意,如果只在()之间插入一个变量,它不会成为元组,因为元组需要 2 个或更多变量。 所以(x) == x

第二个

("Total price is" + " " , total_price)

不是字符串连接。 您使用逗号分隔 2 个变量。 因此,您插入了两个变量并创建了一个元组,因此结果为('Total price is ', 36.0)

为了清楚起见,它相当于:

x = ("Total price is" + " ", total_price) #create a tuple
print x

请注意,在 python 3 上,这两个将打印相同的输出。 因为 print 更像是一个带有参数的函数print(...)

所以,它不能正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM