为什么我的Python循环打印整数而非字符串?新手代码问题求助
问题原因
你代码中遍历对象使用了range(20)生成的整数序列,而非存储了20个名字的new_boy_list,所以遍历拿到的自然是0到19的索引数字,不是你需要的名字内容。
修复方案
方案1:直接遍历列表元素(最适合当前场景)
直接迭代new_boy_list获取每个元素即可,修改后代码如下:
def user2_start(): print(f"{user2} it's now your turn... get ready..." + "\n") # 直接遍历存储名字的列表 for name in new_boy_list: print(name) user2_answer = input("y/n: ") if user2_answer == 'y': boy_list_2.append(name) print(boy_list_2)
方案2:通过索引取值(适合需要用到索引位置的场景)
如果你的逻辑需要用到当前名字对应的顺序索引,可以通过索引从new_boy_list中取出对应位置的元素:
def user2_start(): print(f"{user2} it's now your turn... get ready..." + "\n") # 遍历列表长度对应的索引序列 for index in range(len(new_boy_list)): name = new_boy_list[index] print(name) user2_answer = input("y/n: ") if user2_answer == 'y': boy_list_2.append(name) print(boy_list_2)
注意点
- 原代码把
print(boy_list_2)放在循环内的话,每选择一个名字就会打印一次列表,如果只需要最终输出结果可以把打印语句移到循环外。
内容的提问来源于stack exchange,提问作者edders79
相关产品推荐
相关产品推荐

