Python错误TypeError:+ =不支持的操作数类型:'type'和'int'

时间:2019-10-09 08:19:05

标签: python typeerror

def up_low(s):
    upper = int #If I change this to 0 it works fine
    lower = int #If I change this to 0 it works fine
    for i, l in enumerate(s):
        if l.isupper():
            upper += 1
        elif l.islower():
            lower += 1
    print(f"No. of Upper case characters : {upper}")
    print(f"No. of Lower case Characters : {lower}")

s = 'Hello Mr. Rogers, how are you this fine Tuesday?'
up_low(s)

有人可以解释为什么我不能使用int占位符吗?

4 个答案:

答案 0 :(得分:2)

该消息很清楚,int是一种对象,而不是数字。

尽管您可以使用int(),它会创建一个值为0的整数-但是,仅使用0会更清楚,更简单。

答案 1 :(得分:1)

在Python中,您不要将类型分配给变量。您的台词

upper = int
lower = int

不做您认为他们正在做的事情。他们被分配了 type int而不是int。如果您将其设置为0,则可以在问题中正确指出。那是因为它被分配了一个整数,其值为0,并且可以递增。

答案 2 :(得分:0)

您可以改用int()int本身是类型而不是实例。

>>> int()
0
>>> type(int())  # int() returns an integer (with value 0) usable in calculations
int
>>> type(int)  # int returns a type, not usable in calculations
type

答案 3 :(得分:0)

我刚刚更改了拖曳线-> upper = int(),-> lower = int()

def up_low(s):
    upper = int() #If I change this to 0 it works fine
    lower = int() #If I change this to 0 it works fine
    for i, l in enumerate(s):
        if l.isupper():
            upper += 1
        elif l.islower():
            lower += 1
    print(f"No. of Upper case characters : {upper}")
    print(f"No. of Lower case Characters : {lower}")

s = 'Hello Mr. Rogers, how are you this fine Tuesday?'
up_low(s)
  

不。大写字符数:4小写字符数:33