Python单词链游戏:多玩家名称输入功能异常求助
解决你的单词链游戏玩家输入问题
嘿,我来帮你搞定这个小问题!你的代码思路是对的,但有几个细节没处理好,导致输出出现了None,也没得到你想要的名字列表。我来一步步给你拆解问题和修正方案:
问题出在哪?
append()方法没有返回值:你写的PlayerNames = ls.append(Name)是错误的——list.append()只会修改列表本身,不会返回任何值(也就是返回None),所以每次循环里的PlayerNames都是None,这就是你输出里看到None的原因。- 错误的打印对象:你每次循环后打印的是
PlayerNames(也就是None),而不是刚输入的玩家名字。 - 没有正确输出最终列表:循环结束后你没有打印收集好的完整名字列表。
修正后的代码
下面是调整后的代码,完全符合你的预期输出:
def inputWord(): # 获取玩家数量并直接转为整数,避免后续重复转换 player_count = int(input("Enter Number of Players:")) # 初始化空列表存储玩家名字 player_names = [] for i in range(player_count): name = input("Enter Player Name:") # 把名字添加到列表,不需要赋值给变量 player_names.append(name) # 打印刚输入的名字 print(name) # 最后打印完整的名字列表,供后续游戏逻辑使用 print(player_names) # 调用函数启动输入流程 inputWord()
测试输出
当你运行这段代码,输入如下内容时:
2 David Martin
会得到你期望的输出:
Enter Number of Players:2 Enter Player Name:David David Enter Player Name:Martin Martin ['David', 'Martin']
额外小建议
- 变量名尽量用小写加下划线的风格(比如
player_names而不是PlayerNames),这是Python的PEP8编码规范,可读性更好。 - 你代码里没用到的
WordChain和PlayerNames字典可以直接删掉,让代码更简洁。
内容的提问来源于stack exchange,提问作者Damian
相关产品推荐
相关产品推荐

