如何解決'TypeError: Unsupported Operand Type(s) for -: \'str\' and \'int\'\”錯誤?

Mary-Kate Olsen
發布: 2024-10-19 13:37:01
原創
797 人瀏覽過

How to Resolve

「解決型別錯誤:不支援的運算型別-: '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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!