Python input()函数报TypeError:不接受关键字参数的问题求助
问题原因
Python的input()函数只接受单个字符串参数,不支持像print()那样传入多个参数和sep关键字参数。你代码里给input()传了多个字符串、变量a以及sep="",这就触发了TypeError。
另外你代码里的变量a初始为0,但循环中没有更新,会导致每次询问的都是workout #0,这也是需要修正的点。
修正方案
这里提供几种可行的写法:
方法1:使用f-string(推荐,简洁直观)
workouts = int(input("How many workouts do you have data for?\n")) for i in range(workouts): # 用i+1是因为range从0开始,要显示第1、2...次训练 sets = int(input(f"How many sets were completed in workout #{i+1}?\n")) # 这里可以添加处理sets的逻辑,比如累加统计等
方法2:字符串拼接
workouts = int(input("How many workouts do you have data for?\n")) a = 1 # 初始化为1,对应第一次训练 for _ in range(workouts): sets = int(input("How many sets were completed in workout #" + str(a) + "?\n")) a += 1 # 每次循环后更新训练次数
方法3:使用str.format()
workouts = int(input("How many workouts do you have data for?\n")) for i in range(workouts): sets = int(input("How many sets were completed in workout #{0}?\n".format(i+1)))
说明
- 所有修正后的写法都只给
input()传了一个完整的字符串参数,避免了原错误。 - 循环中用
i+1或者更新a的值,确保询问的训练次数是正确的(从1开始递增)。
内容的提问来源于stack exchange,提问作者raux
相关产品推荐
相关产品推荐

