python - 多次附加用户输入
问题描述
我想将用户输入存储在列表中,根据程序随后做出决定的长度。
就目前而言,用户输入在每次用户提供输入时存储多次,但它应该只附加一次。
moves = int(input("Enter the number of moves: "))
throw00 = []
throw01 = []
throw10 = []
throw11 = []
player_move_dif = [] #create an empty list out of your for-loop
for i, turn in enumerate(range(moves)): #use enumerate() to count the loops
if i >= 0: #first move has no previous one
player_move_dif.append(input("Choose your move number %s (0 or 1):" % (turn+1)))
player_move_2 = int(player_move_dif[i])
player_previous_move = int(player_move_dif[i-1])
else:
player_move_dif.append(input("Choose your move number %s (0 or 1):" % (turn+1)))
player_move_2 = int(player_move_dif[i])
player_previous_move = int(player_move_dif[i-1])
#continue
for turn in range(moves): #store player moves in the respective lists
if player_move_2 == 0 and player_previous_move == 0:
throw00.append(player_move_2)
elif player_move_2 == 0 and player_previous_move == 1:
throw01.append(player_move_2)
elif player_move_2 == 1 and player_previous_move == 0:
throw10.append(player_move_2)
else:
throw11.append(player_move_2)
因此,经过 5 圈后,列表(此处throw11
)的大小为 25 而不是 5。
我试过extend
而不是,append
但这给了我一个 TypeError 。
解决方案
这将起作用,因为这是错误
moves = int(input("Enter the number of moves: "))
throw00 = []
throw01 = []
throw10 = []
throw11 = []
player_move_dif = [] #create an empty list out of your for-loop
for i, turn in enumerate(range(moves)): #use enumerate() to count the loops
if i >= 0: #first move has no previous one
player_move_dif.append(input("Choose your move number %s (0 or 1):" % (turn+1)))
player_move_2 = int(player_move_dif[i])
player_previous_move = int(player_move_dif[i-1])
else:
player_move_dif.append(input("Choose your move number %s (0 or 1):" % (turn+1)))
player_move_2 = int(player_move_dif[i])
player_previous_move = int(player_move_dif[i-1])
#continue
#############################################################################
"""REMOVED THIS LINE OF CODE- for turn in range(moves): #store player moves in the respective lists Because This Means That The Number Of Moves The Player Entered `append` the given input that number of times"""
################################################################################
if player_move_2 == 0 and player_previous_move == 0:
throw00.append(player_move_2)
elif player_move_2 == 0 and player_previous_move == 1:
throw01.append(player_move_2)
else:
throw11.append(player_move_2)
print(throw00)
print(throw01)
print(throw10)
print(throw11)
推荐阅读
- angularjs - angularjs 指令到 angular6 组件/指令
- php - 更改分叉项目中的 PHP 命名空间?以及如何在没有 PHP 命名空间的情况下打开拉取请求?
- javascript - 从元素的文本中获取整数
- mysql - 枚举从显示表中检索到的结果
- java - 获取 sbt 插件时“PKIX 路径构建失败”和“无法找到请求目标的有效认证路径”
- c# - 如何通过另一个 DLL(托管)自动代理一个 DLL(托管)?
- javascript - Javascript document.querySelectorAll() 不适用于无限滚动
- cuda - 如何在 Windows 上配置 Dev-cpp 以运行 CUDA?
- amazon-cloudformation - AWS Cognito 通过 Cloudformation 创建/更新用户池并设置 AllowAdminCreateUserOnly 值
- arm - 库 embedTLS 与 LwIP 2.1.0 的集成在未定义对“_gettimeofday”的引用时出现错误