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

Python列表遍历求助:数字序数词格式化输出循环问题

解决序数词后缀的循环处理问题

嘿,我来帮你搞定这个遍历数字生成序数词的问题!我会给你完整的可运行代码,再拆解每个部分的逻辑,让你清楚每一步是怎么回事。

完整代码实现

# 步骤1:创建包含1-9的数字列表
numbers = list(range(1, 10))

# 步骤2:遍历列表中的每个数字
for num in numbers:
    # 步骤3:用if-elif-else判断正确的序数词后缀
    if num == 1:
        suffix = "st"
    elif num == 2:
        suffix = "nd"
    elif num == 3:
        suffix = "rd"
    else:
        suffix = "th"
    
    # 格式化并输出结果,每行一个序数词
    print(f"{num}{suffix}")

代码逻辑拆解

  • 创建数字列表:list(range(1, 10))会生成[1,2,3,4,5,6,7,8,9],因为range()的第二个参数是“不包含的结束值”,所以写10刚好覆盖到9。
  • 遍历循环:for num in numbers会逐个取出列表里的数字,每次循环的num就是当前要处理的数字。
  • 后缀判断:
    • 数字1对应st(1st),数字2对应nd(2nd),数字3对应rd(3rd)
    • 剩下的4-9统一用th后缀(比如4th、9th)
  • 格式化输出:用f-string把数字和后缀拼接成完整的序数词,然后打印,自然会每行输出一个结果。

扩展小提示(可选)

如果以后需要处理更大的数字(比如11、12、13这类特殊情况,它们虽然最后一位是1/2/3,但后缀还是th),可以调整判断逻辑,比如检查数字的最后两位:

for num in range(1, 21):
    last_two = num % 100
    if 11 <= last_two <= 13:
        suffix = "th"
    else:
        last_digit = num % 10
        if last_digit == 1:
            suffix = "st"
        elif last_digit == 2:
            suffix = "nd"
        elif last_digit == 3:
            suffix = "rd"
        else:
            suffix = "th"
    print(f"{num}{suffix}")

不过这个是额外扩展,你当前的1-9需求用前面的代码完全足够啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:23:41