TypeError: Unsupported Operand Types for Subtraction
Python では、減算演算子は数値や文字列などの互換性のある型間でのみ使用できます。ただし、整数から文字列を減算しようとすると、エラーが発生します。
元のコード:
<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>
エラー:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
説明:
プログラムの入力である text と num は、どちらも input を使用して受け取った文字列です。ただし、関数 cat_n_times は文字列 (テキスト) から整数 (s) を減算しようとします。その結果、型エラーが発生します。
解決策:
1 。入力を整数に変換:
解決策の 1 つは、int():
<code class="python">num = int(input("How many times: "))</code>
2 を使用して文字列 num を整数に変換することです。改良された関数設計:
あるいは、より優れた関数設計では、手動インデックス追跡の代わりに for ループを使用します:
<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>
このバージョンでは、関数の意図がより明確に伝わり、ループ内で使用する前に num を整数に変換することでエラーを排除します。
以上がPython で異なるデータ型を減算する際の型エラーを解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。