【发布时间】:2021-02-27 07:52:27
【问题描述】:
我在大学初学者的计算机科学课程中苦苦挣扎,只需要简单的家庭作业帮助。
现在,我们正在处理函数定义,我必须编写一个程序来读取整数列表,并输出该列表是否包含所有偶数、奇数或都不包含。输入以一个整数开头,表示列表中的整数个数。第一个整数不在列表中(它只是告诉列表的长度)。
我的程序必须定义并调用以下两个函数。 def is_list_even() 如果列表中的所有整数都是偶数,则返回 true,否则返回 false。 def is_list_odd() 如果列表中的所有整数都是奇数,则返回 true,否则返回 false。如果列表全部是偶数,我还必须打印“全部偶数”。如果列表是奇数,我必须打印“全奇数”。如果列表两者都有,我必须打印 'not even or odd'。
我已经能够将我需要的所有整数放入列表中,但是定义是我正在努力解决的问题(格式化、返回等)。我已经粘贴了到目前为止的代码(这个网站已经改变了它的格式),但是我的程序没有产生任何输出。任何帮助,将不胜感激。谢谢。
n = int(input())
my_list =[]
for i in range(n):
num = int(input())
my_list.append(num)
def IsListEven(my_list):
for i in range(len(my_list)):
if my_list[i] % 2 == 0:
return True
else:
return False
def IsListOdd(my_list):
for i in range(len(my_list)):
if my_list[i] % 2 == 1:
return True
else:
return False
def GetUserValues():
if IsListOdd(my_list) == True:
print("all odd")
elif IsListEven(my_list) == True:
print("all Even")
else:
print("not even or odd")
【问题讨论】:
-
return立即结束一个函数。您的for循环中有return保证它们永远不会遍历所有值。例如,IsListEven开始很有希望,但随后在 for 循环的第一次迭代中返回 True 或 False,无论您打算查看多少项目。 -
您当前的代码有什么问题?
-
可以使用内置的
all函数来检查所有数字是否为even或odd。例如,确定列表是否仅包含odd数字,可以这样做:all(map(lambda x: x%2, my_list)) -
我需要程序生成输出“全偶数”、“全奇数”或“非偶数或奇数”。当我运行它时,不会产生任何输出。它没有向我显示任何错误。我将尝试绕过 return 语句,但对如何做到这一点有点困惑。 (我很抱歉,我的计算机科学老师并不擅长向全班解释事情。)
-
你有调试器吗?当您看到您的代码实际在做什么时,这是一个简单的问题。
标签: python python-3.x function return-value definition