《Python 编程》第五章练习-序数

博客展示了一段Python代码,用于练习序数输出。通过`range`函数生成1到9的数字列表,遍历列表,根据数字不同输出对应的序数形式,如1对应1st,2对应2nd等。

#练习5-11:序数

digits=list(range(1,10))

for digit in digits:

        print(digit)

        if digit ==1:

                print('1st')

        elif digit ==2:

                print('2nd')

        elif digit ==3:

                print('3rd')

        else:

                print(f"{}th")

<think> 我们正在处理《Python编程(从入门到实践)》练习5.11:序数。 任务要求:在一个列表中存储数字1~9,遍历列表,使用if-elif-else结构打印每个数字对应的序数(如1st, 2nd, 3rd, 4th等),每个序数独占一行。 根据提供的引用[1]和引用[2],我们可以看出有两种类似的实现方式。 引用[1]的代码: numbers = [number for number in range(1,10)] for number in numbers: if number == 1: print(f'{number}st') elif number == 2: print(f'{number}nd') elif number == 3: print(f'{number}rd') else: print(f'{number}th') 引用[2]的代码: ordinal_numbers = range(1,10) for ordinal_number in ordinal_numbers: if ordinal_number == 1: print("1st") elif ordinal_number == 2: print("2nd") elif ordinal_number == 3: print("3rd") else: print(str(ordinal_number)+'th') 两种方法本质相同,只是创建列表的方式略有不同(引用[1]使用了列表推导式,引用[2]直接使用range,但range在for循环中可以直接遍历)。 注意:题目要求每个序数独占一行,所以每个print语句都会输出一行。 我们将按照要求,给出一个标准的解答,并解释代码。 步骤: 1. 创建数字列表:使用range(1,10)生成1到9的数字。 2. 遍历每个数字。 3. 使用条件判断: 如果是1,输出"1st" 如果是2,输出"2nd" 如果是3,输出"3rd" 其他情况,输出数字加上"th" 注意:题目要求输出形式如“1st”、“2nd”等,所以我们可以使用f-string格式化字符串,也可以使用字符串拼接。 考虑到练习5.11的要求,我们按照书中的风格编写代码。 下面给出完整的代码: </think> 根据《Python编程(从入门到实践)》练习5.11的要求,以下是关于序数输出的完整解答和代码实现: ### 练习5.11解答 **任务要求** 在列表中存储数字1~9,使用`if-elif-else`结构遍历列表,打印每个数字对应的序数(如1st, 2nd, 3rd等),每个序数独占一行。 **完整代码实现** ```python # 创建数字列表(1~9) numbers = list(range(1, 10)) # 遍历并打印序数 for number in numbers: if number == 1: print(f"{number}st") # 1的特殊后缀 elif number == 2: print(f"{number}nd") # 2的特殊后缀 elif number == 3: print(f"{number}rd") # 3的特殊后缀 else: print(f"{number}th") # 其余数字的后缀 ``` **输出结果** ``` 1st 2nd 3rd 4th 5th 6th 7th 8th 9th ``` ### 关键说明 1. **列表创建** `numbers = list(range(1, 10))` 生成包含整数1到9的列表(Python的`range()`函数包含起始值,不包含结束值)。 2. **后缀规则** - 特殊后缀:$1, 2, 3$ 分别对应 `st`, `nd`, `rd` - 通用后缀:$4$ 及以上的数字统一使用 `th` 后缀 3. **f-string格式化** 使用 `f"{number}后缀"` 动态组合数字与序数后缀,确保输出格式正确[^1][^2]。 4. **条件逻辑** `if-elif-else` 结构确保了对特殊数字(1,2,3)的优先级判断,避免逻辑冲突。 ### 常见错误修正 - **错误示例**:使用 `range(1, 9)` 会导致缺少数字9(应改为`range(1, 10)`)。 - **优化建议**:若需扩展至更大数字(如11~13),需增加额外判断(例如 `11th`, `12th`, `13th` 也属于通用后缀)。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值