TypeError: 不支持的减法操作数类型
在 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 试图从字符串(文本)中减去一个整数,导致类型错误。
解决方案:
1 。将输入转换为整数:
一种解决方案是使用 int() 将字符串 num 转换为整数:
<code class="python">num = int(input("How many times: "))</code>
2。改进的函数设计:
或者,更好的函数设计将使用 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中文网其他相关文章!