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)
- 数字1对应
- 格式化输出:用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
相关产品推荐
相关产品推荐

