我想将用户输入存储在一个列表中,根据该列表的长度,程序随后将做出决定
目前,用户输入被存储多次,每次用户给出一个输入,但只能追加一次
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
,但这给了我一个类型错误
这将起作用,因为下面是错误
我刚刚从代码中删除了内部for循环
与嵌套循环相比,您做的工作太多,问题也很多
允许玩家选择0或1的线被移动到循环的顶部,并且在任何条件之外(它所属的位置)。我删除了不必要的
enumerate
、所有不必要的条件、冗长的变量名和不必要的嵌套for
循环。最后的条件都被dict
替换家庭作业
相关问题 更多 >
编程相关推荐