如何找出40以内能被5整除的奇数并保存至列表(附Python代码实现)
找出40以内能被5整除的奇数并保存到列表
识别逻辑拆解
嘿,这个问题其实很好拆解,咱们一步步理清思路:
- 先定范围:我们要找的是小于40的正整数(毕竟0不算奇数,所以从1开始到39就行)。
- 再卡条件:需要同时满足两个要求:
- 能被5整除:也就是这个数除以5余数为0(
num % 5 == 0); - 是奇数:这个数除以2有余数(
num % 2 != 0)。
- 能被5整除:也就是这个数除以5余数为0(
- 还有个更高效的小技巧:5的倍数里,只有当倍数是奇数时,结果才是奇数(比如5×1=5、5×3=15…),所以直接找5的1、3、5、7倍就行——毕竟5×7=35<40,5×9=45就超范围了。
Python代码实现
下面给你三种常见的实现方式,按需选就行:
方式1:循环遍历+条件判断(新手友好,逻辑清晰)
result = [] # 遍历40以内的所有正整数 for num in range(1, 40): # 同时满足两个筛选条件 if num % 5 == 0 and num % 2 != 0: result.append(num) print(result) # 输出: [5, 15, 25, 35]
方式2:列表推导式(Pythonic写法,简洁高效)
如果想一行搞定,用列表推导式最合适:
result = [num for num in range(1, 40) if num % 5 == 0 and num % 2 != 0] print(result) # 输出: [5, 15, 25, 35]
方式3:直接生成5的奇数倍(最省资源)
利用咱们刚才想到的特征,直接生成目标数:
# 倍数取1、3、5、7(步长设为2,自动取奇数) result = [5 * i for i in range(1, 8, 2)] print(result) # 输出: [5, 15, 25, 35]
结果验证
不管用哪种方法,最终得到的列表都是[5, 15, 25, 35],完全符合“40以内、能被5整除、奇数”的要求。
内容的提问来源于stack exchange,提问作者N. Anne
相关产品推荐
相关产品推荐

