3 回答

TA貢獻1880條經驗 獲得超4個贊
首先,我強烈建議您從一些指南/教程開始,或者至少閱讀官方 python 文檔以了解語言基礎知識。
關于你的問題。我將向您展示如何使用官方文檔找到解決方案的基本算法。
input()
讓我們檢查一下函數文檔。然后該函數從輸入中讀取一行,將其轉換為字符串,然后返回。
python 中的字符串表示為
str
. 所以,執行完input()
variables后pops
,cost
并how_many
包含str
值。在您的代碼中,您正在使用
str()
函數。讓我們在文檔中檢查這個函數的作用:返回對象的str版本。
現在您理解了這些表達式
str(cost)
并str(how_many)
轉換str
為str
這意味著..什么都不做。如何將輸入中的值相乘?
您需要將兩個值相乘,這需要轉換
str
為一種數字類型。因為
cost
我們將使用float
,因為它可以包含小數。因為how_many
我們可以使用int
原因計數通常是整數。要轉換str
為數字,我們將使用float()
和int()
函數。在您的代碼中,您只需編輯發生錯誤的行并
str()
用適當的函數替換無用的調用:result = float(cost) * int(how_many)
乘法的結果
float
將int
是float
。如何打印結果?
您正在使用的代碼將引發錯誤,因為您無法對
str
和float
. 有幾種方法可以打印所需的消息:轉換
result
為str
.這是最明顯的方式 - 只需使用
str()
函數:print("You have spent over " + str(result) + " dollars on pops!")
使用功能特點
print()
:在文檔中寫道:
打?。?/strong> *對象,sep='',end='\n',file=sys.stdout,flush=False )
將對象打印到文本流文件,以sep分隔,后跟end。
正如我們所見,對象之間的默認分隔符是空格,所以我們可以只列出字符串的開頭,
result
并以print()
函數的參數結尾:print("You have spent over", result, "dollars on pops!")
這是一個非常復雜的主題,您可以通過以下提供的鏈接閱讀更多信息,我將向您展示一種使用
str.format()
函數的方法:print("You have spent over {} dollars on pops!".format(result))

TA貢獻1807條經驗 獲得超9個贊
您正在嘗試將兩個字符串相乘。你應該像這樣乘法:
result = float(cost) * int(how_many)
但不要忘記在最后一行將結果重新轉換為字符串,否則它會給你另一個錯誤(TypeError
在這種情況下)
print("You have spent over " + str(result) + " dollars on pops!")

TA貢獻1802條經驗 獲得超5個贊
str(item)
轉換item
為字符串。同樣,float(item)
轉換item
為浮點數(如果可能)。
編碼:
result = float(cost) * int(how_many)
不會產生與您指示的相同的錯誤,但ValueError
如果給定的輸入不是您所期望的,則可能會引入 a 。
例子:
a = "b" float(a)
輸出
ValueError: could not convert string to float: 'b'
添加回答
舉報