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

时间:2010-03-04 02:13:24

标签: python python-3.x

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)

2 个答案:

答案 0 :(得分:43)

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

  2. 您通常不会在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: ")) # Convert to an int immediately.
    
    cat_n_times(text, num)
    
  3. 我将API更改了一点。在我看来,n应该是s应该是字符串

答案 1 :(得分:23)

为了将来参考,Python是strongly typed。与其他动态语言不同,它不会自动从一种类型或另一种类型(例如从strint)转换对象,因此您必须自己执行此操作。从长远来看,你会喜欢的,相信我!