Пока L oop не может распаковать Iterable - PullRequest
0 голосов
/ 10 июля 2020

Я работаю с функцией, у которой есть много разных опций (содержащихся в операторах «if» и «elif»), которые увеличивают или уменьшают 4 разные переменные. После завершения функции мне нужно распаковать полученные значения обратно в исходные переменные, чтобы функция могла работать снова. Я пытаюсь сделать это с помощью команды возврата в конце функции, а затем строки кода для действия распаковки. Я получаю сообщение «TypeError: невозможно распаковать неинтерируемый объект типа int». Я новичок в Python и кодировании в целом, поэтому, пожалуйста, простите любые очевидные ошибки! Как я могу устранить эту ошибку? Упрощенный пример кода показан ниже.

a = 200
b = 300
c = 59
d = 9
def command(a, b, c, d):
    blah blah blah
    blah blah blah
    return a, b, c, d
while True:
    a, b, c, d = command(a, b, c, d)

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Спасибо за все эти отзывы! Я вернулся и проверил logi c моих функций и обнаружил там ошибку! Одна из ветвей моих операторов if / then не возвращала переменные, необходимые программе, чтобы позже распаковать их по назначенным именам.

0 голосов
/ 10 июля 2020

Не уверен, что logi c функции, предполагая, что это простое сложение или вычитание самого числа и замена условия while на 2 итерации. Переменные распаковываются. Может быть проблема в функции logi c, если вы можете поделиться кодом logi c, мы сможем увидеть, есть ли проблема с этим

            a = 200
            b = 300
            c = 59
            d = 9
            i=2
            def command(a, b, c, d):
                a=a+1
                b=b-1
                c=c+1
                d=d-1
                return a, b, c, d
            while i != 0:
                a, b, c, d = command(a, b, c, d)
                i-=1

            print(a,b,c,d)
...