Python3实现:判断列表指定索引元素是否能被3整除
问题分析:判断列表指定索引元素是否能被3整除的Python代码
需求说明
- 核心功能:判断列表中指定索引位置的数字是否能被3整除
- 额外规则:若索引无效(超出列表合法范围),返回
False - 测试集:
[9,20,2,3]
用户提交的代码
if index < len(the_list): for m in the_list: print(m) if m % 3 == 0: a = True else: a = False return a else: return False
代码参数与返回说明
- Args:
the_list (list):输入列表index (int):目标索引
- Returns:
True:目标位置元素能被3整除False:目标位置元素不能被3整除,或索引无效
代码存在的问题
- 完全未使用指定索引:代码遍历整个列表,且仅判断第一个元素就直接返回结果,完全忽略传入的
index参数,根本未获取目标索引位置的元素。 - 索引有效性判断不完整:仅判断
index < len(the_list),负数索引(比如-1)会被误判为有效,若需求中的索引指非负位置,应同时检查index >= 0。 - 冗余逻辑:遍历列表、额外变量
a都是不必要的,直接通过索引获取元素即可完成判断。
修正后的代码
def is_divisible_by_3_at_index(the_list, index): # 检查索引是否在合法非负范围内 if 0 <= index < len(the_list): # 直接获取目标索引的元素,判断是否能被3整除 return the_list[index] % 3 == 0 # 索引无效时返回False return False
修正点说明
- 直接通过
the_list[index]定位目标元素,无需遍历整个列表 - 完善索引有效性判断:同时确保索引非负且小于列表长度(若需支持负索引,可调整为
try-except捕获IndexError,或判断abs(index) <= len(the_list)) - 简化逻辑,直接返回判断结果,无需额外变量
测试验证(基于测试集[9,20,2,3])
is_divisible_by_3_at_index([9,20,2,3], 0)→ 返回True(9能被3整除)is_divisible_by_3_at_index([9,20,2,3], 1)→ 返回False(20不能被3整除)is_divisible_by_3_at_index([9,20,2,3], 3)→ 返回True(3能被3整除)is_divisible_by_3_at_index([9,20,2,3], 4)→ 返回False(索引超出范围)is_divisible_by_3_at_index([9,20,2,3], -1)→ 返回False(不符合非负索引规则)
内容的提问来源于stack exchange,提问作者ballokobama
相关产品推荐
相关产品推荐

