代码之家  ›  专栏  ›  技术社区  ›  Aziz Bokhari

Python-TypeError:“int”和“list”的实例之间不支持“<”

  •  -1
  • Aziz Bokhari  · 技术社区  · 2 年前

    我正在用Python做一个小任务。我必须根据问题中规定的年龄范围将年龄分为六个不同的类别。如果年龄小于18岁,代码将打印“类别:18岁以下”。如果年龄在18到24岁之间,代码将打印“类别:18-24”,依此类推。

    这是我的代码:

    Age_Group = [18,24,34,44,54,64]
    
    
    if Age_Group < 18:
        print("Category: Under 18")
    
    elif Age_Group  >= 18 and Age_Group <= 24:
        print("Category: 18-24")
    
    elif Age_Group  >= 25 and Age_Group  <= 34:
        print("Category: 25-34")
    
    elif Age_Group  >= 35 and Age_Group  <= 44:
        print("Category: 35-44")
    
    elif Age_Group  >= 45 and Age_Group  <= 54:
        print("Category: 45-54")
    
    elif Age_Group  >= 55:
        print("Category: 55 and over")
    

    当我执行代码时,我收到“TypeError”消息:

    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-166-8814d798b4aa> in <module>
          2 
          3 
    ----> 4 if Age_Group < 18:
          5     print("Category: Under 18")
          6 
    
    TypeError: '<' not supported between instances of 'list' and 'int'
    

    有人能帮我吗?

    1 回复  |  直到 2 年前
        1
  •  3
  •   Cardstdani    2 年前

    您需要访问列表的每个元素并执行比较,而不是使用 <=> 列表和整数值之间的运算符:

    Age_Group = [18,24,34,44,54,64]
    
    for i in Age_Group:
        print(f"Age {i}")
        if i < 18:
            print("Category: Under 18")
        
        elif i  >= 18 and i <= 24:
            print("Category: 18-24")
        
        elif i  >= 25 and i  <= 34:
            print("Category: 25-34")
        
        elif i  >= 35 and i  <= 44:
            print("Category: 35-44")
        
        elif i  >= 45 and i  <= 54:
            print("Category: 45-54")
        
        elif i  >= 55:
            print("Category: 55 and over")
    

    输出:

    Age 18
    Category: 18-24
    Age 24
    Category: 18-24
    Age 34
    Category: 25-34
    Age 44
    Category: 35-44
    Age 54
    Category: 45-54
    Age 64
    Category: 55 and over