TypeError: 不支持的操作数类型 -: 'str' 和 'int'

TypeError: unsupported operand type(s) for -: #39;str#39; and #39;int#39;(TypeError: 不支持的操作数类型 -: str 和 int)

本文介绍了TypeError: 不支持的操作数类型 -: 'str' 和 'int'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么会收到这个错误?

How come I'm getting this error?

我的代码:

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)

错误:

TypeError: unsupported operand type(s) for -: 'str' and 'int'

推荐答案

  1. 失败的原因是(Python 3)input 返回一个字符串.要将其转换为整数,请使用 int(some_string).

  1. The reason this is failing is because (Python 3) input returns a string. To convert it to an integer, use int(some_string).

您通常不会在 Python 中手动跟踪索引.实现这种功能的更好方法是

You do not typically keep track of indices manually in Python. A better way to implement such a function would be

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: ")) # Convert to an int immediately.

cat_n_times(text, num)

  • 我在上面修改了你的 API.在我看来 n 应该是 number of timess 应该是 string.

  • I changed your API above a bit. It seems to me that n should be the number of times and s should be the string.

    这篇关于TypeError: 不支持的操作数类型 -: 'str' 和 'int'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

  • 本文标题为:TypeError: 不支持的操作数类型 -: 'str' 和 'int'

    基础教程推荐