此程序应在main中创建一个数组,并提示用户输入5个整数,并将它们存储在名为fibArray的函数中。然后它创建一个名为containsOnlyOdd的函数,该函数除了数组外,如果数组只包含奇数则返回true,否则返回false。打印一条表示结果的消息,例如ex:[1,2,3,4,5]“该数组包含奇数和偶数。”或[1,3,5,7,9]“数组只包含奇数。
错误是get在fibArray的第10行,即fibArray = [0] * num。 TypeError:不能将序列乘以类型列表的非int。
def main():
integer = 5
intArray = [0] * integer
for index in range(integer):
intArray[index] = int(input("Enter integers:"))
print(intArray)
fibArray(intArray)
def fibArray(num):
fibArray = [0] * num
for index in range(num):
print(num)
def containsOnlyOdds(lst):
for num in lst:
if num % 2 == 0
#print("This list is all odd")
return false`
#print("This list has even numbers")
return True
main()
我做错了什么?请帮忙!!
答案 0 :(得分:1)
确切地说,错误消息的含义是:您将数组传递给fibArray:
fibArray(intArray)
反过来试图将其乘以 [0] :
fibArray = [0] * num
您只能调用fibArray并传递一个数字,但不能传递数组。
修改/添加:强>
数字已存储在数组intArray中。不需要函数fibArray。当然,您也可以将数字传递给函数,然后再将函数存储起来。由于你刚刚开始使用python,我建议暂时使用值检查功能。程序运行后,您可以尝试将部分代码封装在另一个函数中。
def containsOnlyOdds(lst)的定义中也存在一些语法错误:您应该修复循环和if语句的缩进。此外,您在语句后缺少冒号,例如
for anElement in aList:
if (statement):
#do something, e.g. return False
#do something else, e.g. return True