「解決型別錯誤:不支援的運算型別-: 'str' 和'int'」
嘗試編碼時在Python中,遇到類似「TypeError: unsupported operand type(s) for -: 'str' and 'int'」錯誤的情況並不少見。此錯誤通常在嘗試對不同資料類型執行數學運算時發生,例如從字串中減去整數。
要理解此錯誤,讓我們檢查導致該錯誤的程式碼:
<code class="python">def cat_n_times(s, n): while s != 0: print(n) s = s - 1 text = input("What would you like the computer to repeat back to you: ") num = input("How many times: ") cat_n_times(num, text)</code>
這裡的問題在於輸入函數,它為 text 和 num 傳回字串。當程式碼嘗試從字串 (num) 中減去整數 (s - 1) 時,會導致錯誤。
解決方案 1:轉換輸入
One解決方案是在執行數學運算之前將輸入從字串轉換為整數。這可以使用 int() 函數來完成:
<code class="python">num = int(input("How many times: "))</code>
透過將 num 轉換為整數,我們可以確保數學運算與 s 的兼容性。
解決方案2:使用替代迭代
不要手動追蹤索引,而是考慮採用更Pythonic 的迭代方法:
<code class="python">def cat_n_times(s, n): for i in range(n): print(s) text = input("What would you like the computer to repeat back to you: ") num = int(input("How many times: ")) cat_n_times(text, num)</code>
這裡,帶有range(n) 的for 迴圈處理迭代
API 注意事項
該錯誤也突顯了API 設計的潛在問題。 text是字串,num表示次數可能更直觀。在這種情況下,可以對API進行相應修改。
以上是如何解決'TypeError: Unsupported Operand Type(s) for -: \'str\' and \'int\'\”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!