编写一个接受整数列表作为参数的函数。您的函数应返回列表中所有奇数的总和。如果列表中没有奇数,您的函数应返回 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 中的条件以及从我的主程序调用该函数时首先出现错误。我不明白这个错误的性质。它只是说明
TypeError:并非所有参数都在字符串格式化期间转换
原文由 Karan Thakkar 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是:当你这样做时
item
是一个字符串。它被存储在一个列表中,传递给odd_numbers()
,当你到达当它看到
str % something
时,它会尝试应用旧式字符串格式(例如,"%04d" % 3
结果为"0003"
)。但是你的字符串没有任何格式说明符(没有"%"
字符),所以它抱怨说参数多于放置它们的地方;-)为避免这种情况,请确保将字符串转换为数字,即
一个有点hacky的解决方案:
或更具可读性的,
或功能等价物,