【问题标题】:While Loop failing to Unpack IterableWhile Loop 无法解包 Iterable
【发布时间】:2020-10-30 18:44:24
【问题描述】:

我正在使用具有许多不同选项(包含在“if”和“elif”语句中)的函数,这些选项都增加或减少 4 个不同的变量。一旦函数结束,我需要将结果值解包回原始变量,以便函数可以再次运行。我正在尝试在函数末尾使用 return 命令来执行此操作,然后是解包操作的一行代码。我收到“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)

【问题讨论】:

标签: python iterable iterable-unpacking


【解决方案1】:

感谢所有这些反馈!我回去检查了我的函数的逻辑,并在那里发现了错误!我的 if/then 语句的一个分支没有返回程序所需的变量,以便稍后将它们解压缩到指定的名称中。

【讨论】:

    【解决方案2】:

    不确定函数的逻辑,假设它是对数字本身的简单加法或减法,并将while条件替换为2次迭代。 变量被解包。 可能是函数逻辑有问题,如果你能分享一下逻辑代码我们看看有没有问题

                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)
    

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2016-05-15
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 2019-02-12
      • 2011-12-16
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多