尝试将数组从main存储到另一个函数中的数组

时间:2013-12-03 21:39:42

标签: python arrays

此程序应在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()

我做错了什么?请帮忙!!

1 个答案:

答案 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