python - 列表函数中的奇数和偶数 - Python

标签 python list append return-value modulus

我正在尝试创建一个名为“odd_even”的函数,它采用我已经创建的列表(名为“nums”)并确定奇数和偶数的数量,然后将变量返回给我。但是,当我运行这段代码时,我得到:

NameError: 名称 'odd' 未定义

我该如何解决这个问题?如果您能给我任何关于“返回”功能的有用指示,我们也将不胜感激。

import random

def main():

     nums = []

     for x in range(10):

     nums.append(random.randrange(1,26))

     def odd_even(given_list):
         odd = 0
         even = 0
         for x in given_list:
             if x % 2 == 0:
                 even += 1
             else:
                 odd += 1

         return odd
         return even

     odd_even(nums)

     print("List had ", odd, "odds and ", even, "evens.")

 main()

最佳答案

你做错了两件事。

首先,您试图返回 两个值,但在不同的行上。你不能这样做,要做到这一点,做一个元组:

def odd_even(given_list):
     odd = 0
     even = 0
     for x in given_list:
         if x % 2 == 0:
             even += 1
         else:
             odd += 1

     return odd, even

其次,您调用函数但不存储return 的值。所以你需要改变:

odd_even(nums)odd, even = odd_even(nums)

通过尝试执行:

print("List had ", odd, "odds and ", even, "evens.")

main() 正在寻找变量 oddeven,但它们不存在于 main(),它们在本地存在于 odd_even() 中(因此你调用 return 是为了将它们返回给调用函数。你只看到关于 odd 的错误是因为它是解释器遇到错误的 print() 中的第一个变量。

没有正确使用 return 的唯一方法是将它们声明为 global。但这是个坏主意,所以不要那样做,把事情放在堆栈上!

关于python - 列表函数中的奇数和偶数 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517921/

相关文章:

python - 如何让 Tox 从 setup.py 中的 dependency_list 找到我的依赖项的本地轮子

python - 简单函数情况下的方法与函数

java - 从具有附加元素的给定列表派生列表

python - 在带数字的列表中查找按字母顺序排列的第一项

C++ std::string 追加覆盖而不是追加

javascript - 在 jQuery 中的最后一个元素之前追加元素不结束

python - 将也是对象的对象属性分配给变量或每次调用它们是否更有效

python - 在 Python 中使用 OpenCV 相位展开函数

javascript - 从左侧居中列表

pandas - 将元组作为行 append 到数据帧