2016-08-02 2 views
0

мне нужно forLoop1 использовать y если z равен 1 еще использовать x и то же самое для forLoop2, но обратнаяИспользование х, если г равно верно другое использование г

мой код:

for z in range(3): 
    count=[0]*plys 
    for y in range(len(game)): #forLoop1 
     for x in range(len(game[y])): #forLoop2 
      for i in range(plys): 
       if game[y][x] == i+1: 
        count[i] += 1 
     for i in range(plys): 
      if count[i] >= 3: 
       print("Player " + str(i+1) + " is the winner") 
     count=[0]*plys 

Я пытался что-то вроде этого :

for y if z == 0 else x in range(len(game)): 

и:

for (y if z == 0 else x) in range(len(game)): 

Но это не сработало

Любая помощь будет принята с благодарностью и жаль, если я плохо объясняя это

+0

объяснение немного сбивает с толку, ты имеешь в виду хотите использовать 'for y в диапазоне (len (game))' if 'z == 1', а если' z! = 1', то 'для x в диапазоне (len (game))'? –

ответ

1

... if ... else ... условное выражение производит выражение, вы не можете использовать его для man-обрабатывать имена переменных индекса цикла for.

Но вы можете сделать это:

for z in range(3): 
    count=[0]*plys 
    for k1 in range(len(game)): #forLoop1 
     for k2 in range(len(game)): #forLoop2 
      y, x = (k1, k2) if z == 1 else (k2, k1) 
      for i in range(plys): 
       if game[y][x] == i+1: 
        count[i] += 1 
     for i in range(plys): 
      if count[i] >= 3: 
       print("Player " + str(i+1) + " is the winner") 
     count=[0]*plys 

Однако, это может быть более ясным, если вы просто использовать полный if... else блок:

if z == 1: 
    y, x = k1, k2 
else: 
    y, x = k2, k1 
+0

После того, как я опубликовал это, я понял, что это глупый вопрос. Спасибо подумал – ocboogie

+0

@ocboogie Я бы не назвал ваш вопрос _dumb_ сам по себе, но он немного неясен в его текущем состоянии. И я предполагаю, что это сложный способ взглянуть на проблему. Вместо того, чтобы думать об обмене индексами цикла, вы действительно хотите поменять индексы списка 'game'. См. [Что такое проблема XY?] (Http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+1

Кстати, мы обычно не удаляем наши собственные вопросы на SO после того, как они получили ответ ... если вопрос не очень плохой, и ответ тоже. :) См. Http://meta.stackoverflow.com/a/311812/4014959 –

Смежные вопросы