TypeError: input最多接受1个参数却得到4个 个位数加法生成器开发报错
报错原因与完整修复方案
直接报错原因
你看到的TypeError: input expected 1 argument at most got 4错误,是因为Python内置input()函数仅支持传入1个字符串作为提示语,你代码中用逗号分隔传入了4个独立参数(提示文本、两个num变量、"+"字符串),不符合函数入参要求。
其他逻辑问题修复
除了入参错误,你的代码还存在多处逻辑问题,会导致功能不符合预期:
num仅在循环外生成一次,10道题会完全重复,需把随机数生成逻辑移到循环内部,每次生成两个独立的个位数list.append()方法无返回值,执行后返回None,把该返回值赋值给q会导致永远无法匹配正确答案score=+1是赋值操作(直接把分数改为1),不是累加操作,正确写法是score += 1- 累加两个随机数的逻辑错误,你当前是把用户输入存到列表再求和,和正确答案的计算逻辑完全不符
修复后完整代码
import random score = 0 for i in range(10): # 每次生成两个独立的随机个位数 num1 = random.randint(0,9) num2 = random.randint(0,9) # 用f-string拼接提示语,仅传1个参数给input user_answer = int(input(f"What is the answer to: {num1} + {num2} ")) # 计算正确答案 correct_answer = num1 + num2 if user_answer == correct_answer: score += 1 print("Your score is: ", score)
内容的提问来源于stack exchange,提问作者carmenie
相关产品推荐
相关产品推荐

