如何消除Python整除测试函数运行后的None输出?
消除Python代码输出末尾的None
问题根源
你的函数num_divisibility没有设置返回值,Python中未定义return语句的函数默认返回None。你调用时用print(num_divisibility([...])),会先执行函数内部的print输出符合条件的数,接着打印函数的返回值None,所以末尾会多出这个无效输出。
两种解决方法
方法1:直接调用函数,去掉外层print
函数内部已经有print逻辑,直接调用函数即可,无需用print包裹:
def num_divisibility(num_list): for num in num_list: if num % 5 == 0: print(num) num_divisibility([10, 20, 33, 46, 55])
运行输出:
10 20 55
方法2:让函数返回结果列表,外部处理输出
这种方式更符合函数单一职责原则,函数只负责筛选数据,输出由外部控制:
def num_divisibility(num_list): filtered_nums = [] for num in num_list: if num % 5 == 0: filtered_nums.append(num) return filtered_nums # 打印列表形式结果 print(num_divisibility([10, 20, 33, 46, 55]))
运行输出:
[10, 20, 55]
如果需要保持原输出格式(每个数单独一行),可以遍历返回的列表逐个打印:
def num_divisibility(num_list): filtered_nums = [] for num in num_list: if num % 5 == 0: filtered_nums.append(num) return filtered_nums for num in num_divisibility([10, 20, 33, 46, 55]): print(num)
运行输出:
10 20 55
内容的提问来源于stack exchange,提问作者puja pandit
相关产品推荐
相关产品推荐

