簡體   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