如何实现根据用户输入执行对应Python团队/个人赛事函数?
问题解决与代码修正
原代码存在的问题
- 缩进错误:
teamEnter、individualEnter、intro等函数定义前有多余缩进,Python要求函数定义需处于正确层级(此处应顶格),否则会触发语法错误。 - 函数定义顺序错误:
intro()调用放在了tevent1、tevent2、ievent2等事件函数定义之前,程序执行时会因找不到未定义的函数抛出NameError。 - 功能缺失:
individualEnter()仅调用了ievent1(),未调用ievent2(),不符合输入"Individuals"时执行两个事件函数的需求。
修正后的代码
tnames = [] inames = [] def teamEnter(): for x in range(4): tnames.append(input("Please enter a team name:")) print(tnames) tevent1() tevent2() # 循环4次输入4个队伍名称 def individualEnter(): for x in range(20): inames.append(input("Please enter an individual's name:")) print(inames) ievent1() ievent2() # 循环20次输入20个个人名称 def tevent1(): print("This is the relay race event") def tevent2(): print("This is the football event") def ievent1(): print("This is the tug of war event") def ievent2(): print("This is the dodgeball event") def intro(): inp = input("Would you like to hold a tournament for teams or individuals: ") # 询问用户选择团队赛还是个人赛 print(' ') if inp == "Individuals": individualEnter() elif inp == "Teams": teamEnter() # 初始选择页面,选择团队或个人模式 intro()
关键修改说明
- 移除所有函数定义前的多余缩进,确保语法合规。
- 调整函数定义顺序:先定义所有事件函数和输入处理函数,最后定义并调用
intro(),保证调用时所有函数已完成定义。 - 在
individualEnter()中添加ievent2()调用,满足输入"Individuals"时执行两个事件的需求。 - 修正输入提示的拼写:将"individuals name"改为"individual's name",语法更规范。
内容的提问来源于stack exchange,提问作者Birds
相关产品推荐
相关产品推荐

