首页 > 解决方案 > for 循环的问题

问题描述

我正在尝试用 jetbrains 学习 python,但我真的在为循环而苦苦挣扎。我希望我能解释我所有的一般问题,但它是高度情境化的,我不记得我的最后一个问题是什么,而且通常我可以在失败后正确猜测它们。在这里,我在第 21 行和第 23 行有一个语法问题。我做错了什么?

1   user_input = input('Enter cells: ')
2   # print game
3   print('---------')
4   print('| ' + user_input[0] + ' ' + user_input[1] + ' ' + user_input[2] + ' |')
5   print('| ' + user_input[3] + ' ' + user_input[4] + ' ' + user_input[5] + ' |')
6   print('| ' + user_input[6] + ' ' + user_input[7] + ' ' + user_input[8] + ' |')
7   print('---------')
8   # separate winning lines
9   row_1 = user_input[0] + user_input[1] + user_input[2]
10  row_2 = user_input[3] + user_input[4] + user_input[5]
11  row_3 = user_input[6] + user_input[7] + user_input[8]
12  col_1 = user_input[0] + user_input[3] + user_input[6]
13  col_2 = user_input[1] + user_input[4] + user_input[7]
14  col_3 = user_input[2] + user_input[5] + user_input[8]
15  dia_1 = user_input[0] + user_input[4] + user_input[8]
16  dia_2 = user_input[6] + user_input[4] + user_input[2]
17  lines = [row_1, row_2, row_3, col_1, col_2, col_3, dia_1, dia_2]
18  # evaluate results
19  x_counter = 0
20  o_counter = 0
21  for x in lines if x == 'X':
22      x_counter += 1 
23  for o in lines if o == 'O':
24      o_counter += 1
25  if x_counter - o_counter >=2: print('Impossible')
26  if o_counter - x_counter >=2: print('Impossible')
27  if 'XXX' and 'OOO' in lines: print('Impossible')
28  elif 'XXX' in lines: print('X wins')
29  elif 'OOO' in lines: print('O wins')
30  elif '_' in lines: print('Game not finished')
31  else: print('Draw')

标签: python

解决方案


推荐阅读