Как переключаться между несколькими переменными с помощью оператора if-else в Python - PullRequest
0 голосов
/ 01 февраля 2020

Как бы я сделал переключение между несколькими переменными, используя одну переменную переключателя?

Обновление: Чтобы уточнить намерение состоит в том, чтобы переключаться между этими двумя наборами переменных на неопределенное количество раз.

Когда я пытаюсь это сделать, я получаю следующую ошибку.

a1= 'process1'
a2 = 'process2'

b1 = 'action1'
b2 = 'action2'

switch = True # the switch to indicate which set of variables to use
N = 10        # the number of times to switch between the two sets of variables

# alternate between two sets of variables N times
for i in range (N):
    active_process, active_action = a1, b1 if switch else a2, b2

    print("active_process: %s, active_action is: %s" %(active_process, active_action))
    switch = not switch

Traceback:

Traceback (most recent call last):
  File "/home/username/.PyCharm2019.3/config/scratches/scratch_10.py", line 10, in <module>
    active_process, active_action = a1, b1 if switch else a2, b2
ValueError: too many values to unpack (expected 2)

Process finished with exit code 1

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Ты делаешь это слишком далеко от agile. У вас есть таблица значений приветствия / ответа и логическое значение, которое говорит вам, что использовать. Просто сделайте это со списком прямого доступа:

table = [ ("process1", "action1"),
          ("process2" , "action2")
        ]

N = 10
for i in range(10):
    print("%s, the answer is: %s" % table[i %2])

В качестве альтернативы используйте dict:

table = { True:  ("process1", "action1"),
          False: ("process2" , "action2")
        }
N = 10
for i in range(N):
    print("%s, the answer is: %s" % table[i %2])
0 голосов
/ 01 февраля 2020

Использование списка для упаковки и распаковки предметов дало желаемый результат:

a1= 'process1'
a2 = 'process2'

b1 = 'action1'
b2 = 'action2'

switch = True # the switch to indicate which set of variables to use
N = 10        # the number of times to switch between the two sets of 

# alternate between two sets of variables N times
for i in range (N):
    [active_process, active_action] = [a1, b1] if switch else [a2, b2]

    print("active_process: %s, active_action is: %s" %(active_process, active_action))
    switch = not switch

Вывод:

active_process: process1, active_action is: action1
active_process: process2, active_action is: action2
active_process: process1, active_action is: action1
active_process: process2, active_action is: action2
active_process: process1, active_action is: action1
active_process: process2, active_action is: action2
active_process: process1, active_action is: action1
active_process: process2, active_action is: action2
active_process: process1, active_action is: action1
active_process: process2, active_action is: action2

Process finished with exit code 0
...