【问题标题】:How to call the variable declared in user defined function in python如何在python中调用用户定义函数中声明的变量
【发布时间】:2020-10-07 04:29:57
【问题描述】:

每当我在 python 中使用变量定义任何函数时,我都无法调用或打印函数中声明的变量的值,因此无法在后续代码行中使用该变量。 如果我能知道我在使用它时哪里错了,那将非常有帮助。

例如,创建 500 个数字的列表的以下代码行: 它给出错误:NameError: name 'r1' is not defined

def createlist(r1):
    for n in range(1,500):
        return np.arange(r1, r1+n, 1)
    r1 = 1
    print(createlist(r1))

【问题讨论】:

  • 此代码可能不是您实际运行的代码 - 该函数将在 for 循环的第一次迭代期间返回,并且永远不会到达最后两行,假设您确实从某处。
  • 你能帮忙吗?我该怎么办?所以在所有迭代之后,我的函数会产生最后的拖链输出?

标签: python list function for-loop nameerror


【解决方案1】:

此代码不适用于您想要的。

试试这个代码。

import numpy as np
def createlist(r1):
    for n in range(1,500):
        print(np.arange(r1, r1+n, 1))
r1 = 1
#print(createlist(r1))
createlist(r1)

【讨论】:

    【解决方案2】:

    问题是因为缩进。

    您在函数中声明 r1。它会给你错误,因为print(createlist(r1)) 看不到r1。所以解决方案是:

    import numpy as np
    def createlist(r1):
        for n in range(1,500):
            return np.arange(r1, r1+n, 1)
    r1 = 1
    print(createlist(r1))
    

    希望对你有所帮助

    【讨论】:

      【解决方案3】:

      我认为你想正确缩进你的代码并且你想返回每次迭代的结果,你可以试试这个

      import numpy as np
      
      
      def createlist(r1):
          op = []
          for n in range(1, 500):
              op.append(list(np.arange(r1, r1 + n, 1)))   # op is storing the list generated in each iteration
          return op   # now you can return op, a list which contains results from the loop
      
      
      r1 = 1
      print(createlist(r1))
      

      附言请提供更多关于您想要做什么的说明。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-12
        • 2015-05-11
        • 1970-01-01
        • 1970-01-01
        • 2018-02-04
        相关资源
        最近更新 更多