You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手获取城市随机温度报错'int不可迭代'如何解决?

报错原因

你代码里的in运算符是用来判断左侧元素是否属于右侧可迭代对象的成员,而random.randrange()返回的是单个整数,不是可迭代的序列/范围对象,这就是触发TypeError: argument of type 'int' is not iterable的直接原因。另外你初始化的temperature变量完全没有作用,无需提前声明。
还有一个隐藏问题:火奴鲁鲁对应的random.randrange(8790, 6600)写法错误,randrange要求起始值小于结束值,否则会抛出空范围的错误。

修正后代码

import random

def get_temperature(city_name: str) -> int:
    """Gets a random temperature from a possible range for a city."""
    if city_name == "Pocatello":
        return random.randrange(1600, 8790)
    elif city_name == "Orlando":
        return random.randrange(5000, 9150)
    elif city_name == "Salt Lake City":
        return random.randrange(2600, 8990)
    elif city_name == "Dallas":
        return random.randrange(3000, 9490)
    elif city_name == "Ann Arbor":
        return random.randrange(1800, 8290)
    elif city_name == "Phoenix":
        return random.randrange(4600, 10590)
    elif city_name == "Anchorage":
        return random.randrange(1100, 6490)
    elif city_name == "Honolulu":
        # 修正randrange参数顺序,要求起始值 < 结束值
        return random.randrange(6600, 8790)
    elif city_name == "Cloud City":  # for fun
        return random.randrange(6000, 7000)
    else:
        return random.randrange(1100, 10590)

print(get_temperature("Dallas"))

可选优化方案

如果后续要新增城市,不用堆叠大量elif判断,可以用字典存储城市和对应温度区间,代码更简洁易维护:

import random

# 提前维护城市与对应温度区间的映射关系
CITY_TEMP_RANGE = {
    "Pocatello": (1600, 8790),
    "Orlando": (5000, 9150),
    "Salt Lake City": (2600, 8990),
    "Dallas": (3000, 9490),
    "Ann Arbor": (1800, 8290),
    "Phoenix": (4600, 10590),
    "Anchorage": (1100, 6490),
    "Honolulu": (6600, 8790),
    "Cloud City": (6000, 7000)
}

def get_temperature(city_name: str) -> int:
    """Gets a random temperature from a possible range for a city."""
    # 找不到对应城市时返回默认区间
    temp_range = CITY_TEMP_RANGE.get(city_name, (1100, 10590))
    return random.randrange(*temp_range)

print(get_temperature("Dallas"))

内容的提问来源于stack exchange,提问作者Kaylee Dalton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:39:02