统计列表质数数量的Python函数运行无输出,代码存在什么问题?
代码错误点说明
- 直接导致无输出的核心问题:
a_list == nums使用了双等号比较运算符,没有完成赋值操作,a_list始终是空列表,后续的for循环根本不会执行,自然不会有打印输出。 - 语法错误:
if a_list % 2 == 0尝试对整个列表做取余运算,Python不支持该操作,就算循环能执行也会直接报错。 - 质数判断逻辑完全错误:当前代码仅判断是否为偶数,不符合质数定义(大于1的自然数,除了1和自身外没有其他正因数),且除了2之外的偶数都不是质数,逻辑方向完全错误。
- 变量使用混乱:
primes初始化为整数0,后续执行primes = primes + a_list尝试整数和列表相加,属于类型不匹配错误;listing == len(primes)又错误使用比较运算符而非赋值运算符,且整数类型没有len()方法,运行会直接报错。 - 缺少函数调用逻辑:仅定义了
count_primes函数,没有主动调用的代码,就算内部逻辑正确也不会生成运行结果。
修正后可运行代码
def count_primes(nums): def is_prime(n): # 小于2的数都不是质数 if n < 2: return False # 遍历到平方根即可判断是否有其他因数 for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True prime_count = 0 for num in nums: if is_prime(num): prime_count += 1 return prime_count # 调用示例 test_nums = [2,3,4,5,6,7,8,9,10] print(count_primes(test_nums))
内容的提问来源于stack exchange,提问作者Jovan0000
相关产品推荐
相关产品推荐

