如何用for循环筛选奇数?Python代码无输出问题求助
问题分析与代码修正
核心错误点
is_odd函数逻辑完全颠倒:当前函数在数字是偶数(num % 2 == 0)时返回True,和函数名“判断奇数”的目标完全相反。- 循环判断与执行逻辑错误:
if num == is_odd是把数字和函数对象做比较,永远不会成立;且continue写在print(num)前面,就算条件成立,也会直接跳过打印操作,导致无输出。
修正后的代码
def is_odd(num): # 奇数除以2余1,返回对应的判断结果 return num % 2 != 0 some_numbers = [91, 88, 38, 103, 199372, 3, 4945, 20098] for num in some_numbers: # 调用is_odd函数判断当前数字是否为奇数 if is_odd(num): print(num)
更简洁的简化写法(可选)
如果不需要单独的判断函数,可直接在循环内完成判断:
some_numbers = [91, 88, 38, 103, 199372, 3, 4945, 20098] for num in some_numbers: if num % 2 != 0: print(num)
运行后会输出所有奇数:91、103、3、4945
内容的提问来源于stack exchange,提问作者SVK
相关产品推荐
相关产品推荐

