Python初学者求助:isprime函数调用报TypeError错误的问题排查
问题分析与解决
核心问题
- 参数缺失错误:你定义的
isprime函数声明需要接收一个value参数,但最后调用isprime()时没有传入任何参数,Python因此抛出TypeError提示参数缺失。 - 逻辑冗余混乱:你在函数内部又通过
value=int(input(...))重新给value赋值,这会直接覆盖掉传入的参数,完全违背了函数的单一职责——判断素数的函数不该同时负责获取用户输入。
修正方案
方案1:函数专注判断素数,输入放在外部
def isprime(value): if value < 2: return False for count in range(2, value): if value % count == 0: return False return True # 外部获取输入并调用函数 num = int(input("Enter a number: ")) print(isprime(num))
方案2:让函数自行处理输入(无需参数)
def isprime(): value = int(input("Enter a number: ")) if value < 2: return False for count in range(2, value): if value % count == 0: return False return True # 直接调用无参函数 print(isprime())
内容的提问来源于stack exchange,提问作者Vitor Silva
相关产品推荐
相关产品推荐

