【发布时间】:2016-02-13 06:52:11
【问题描述】:
编写一个接受整数列表作为参数的函数。您的函数应该返回列表中所有奇数的总和。如果列表中没有奇数,您的函数应返回 0 作为总和。
def odd_numbers (my_list):
total = 0
count = 0
for number in my_list:
if (number % 2 == 1):
total = total + number
else:
count = count + 1
if (number == count):
return (0)
else:
return (total)
#Main Program
my_list = []
n = int(input("Enter the maximum length of a list: "))
while (len(my_list) < n):
item = input ("Enter integer value to the list: ")
my_list.append(item)
print ("This is your list: ", my_list)
result = odd_numbers(my_list)
print (result)
这是我的程序。当我执行它时,函数odd_numbers 中的if 条件以及从主程序调用该函数时首先出现错误。我无法理解这个错误的性质。它只是说
TypeError:字符串格式化期间并非所有参数都转换
【问题讨论】:
-
你为什么要同时标记
python-2.7和python-3.x?您真的在两个版本中都遇到同样的错误吗? -
if (number == count)是干什么用的?在循环之后,number是列表中的最后一个元素,而count是偶数的计数。number == count如何告诉你列表中没有奇数? -
@Barmar 他打算写
if (count == 0),但即使这样也是多余的,因为total无论如何都会为零。 -
@Selcuk 这甚至不是正确的测试。
count是偶数个数,他应该数奇数个数。 -
你是对的,
if count == len(my_list)也许。
标签: python python-2.7 python-3.x functional-programming