如何将iterable分配给python数组变量?

如何将iterable分配给python数组变量?,python,arrays,Python,Arrays,我定义了一个包含20个元素的数组,然后要求用户为每个元素输入一个数字,然后它将平均他们输入的所有数字。然而,我完成这项工作的方式非常繁琐,看起来像是可以简化的重复代码。然而,我很难找到答案。我认为可以在每次输入后增加下标,以避免要求20行输入 我已经尝试合并一个开始/停止/步骤解决方案。然而,我所做的是错的。我尝试的是num[0:19:1]=int(输入(“键入数字”)),希望这能完成3件事 从0开始 在20号结束 增加1 然而,这并没有起作用 START = input("Type start

我定义了一个包含20个元素的数组,然后要求用户为每个元素输入一个数字,然后它将平均他们输入的所有数字。然而,我完成这项工作的方式非常繁琐,看起来像是可以简化的重复代码。然而,我很难找到答案。我认为可以在每次输入后增加下标,以避免要求20行输入

我已经尝试合并一个开始/停止/步骤解决方案。然而,我所做的是错的。我尝试的是num[0:19:1]=int(输入(“键入数字”)),希望这能完成3件事

  • 从0开始
  • 在20号结束
  • 增加1
  • 然而,这并没有起作用

    START = input("Type start if you wan't to do this thang: ")
    while START == "start":
        num = ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,])
        num[0] = int(input("type in number: "))
        num[1] = int(input("type in number: "))
        num[2] = int(input("type in number: "))
        num[3] = int(input("type in number: "))
        num[4] = int(input("type in number: "))
        num[5] = int(input("type in number: "))
        num[6] = int(input("type in number: "))
        num[7] = int(input("type in number: "))
        num[8] = int(input("type in number: "))
        num[9] = int(input("type in number: "))
        num[10] = int(input("type in number: "))
        num[11] = int(input("type in number: "))
        num[12] = int(input("type in number: "))
        num[13] = int(input("type in number: "))
        num[14] = int(input("type in number: "))
        num[15] = int(input("type in number: "))
        num[16] = int(input("type in number: "))
        num[17] = int(input("type in number: "))
        num[18] = int(input("type in number: "))
        num[19] = int(input("type in number: "))
        average = (num[0] + num[1] + num[2] + num[3] + num[4] + num[5] + num[6] + num[7] + num[8] + num[9] + num[10] + num[11] + num[12] + num[13] + num[14] + num[15] + num[16] + num[17] + num[18]+ num[19]) / 20
        START = input("If that was wild for you, type start again, or type quit if that was lame: ")
        if START == "quit":
            break
    
    试试这个

    def iterator(n):
        START = input("Type start if you wan't to do this thang: ")
        numbers=[]
        while START == "start":
            total=0
            for i in range(0,n):
                num=int(input("type in number: "))
                total+=num
                numbers.append(num)
            print("Average : ",total/n)
            print(numbers)
    
            START = input("If that was wild for you, type start again, or type quit if that was lame: ")
            if START == "quit":
                break
    
    iterator(20)
    

    代码中的一些问题

    • 你不需要像现在这样定义你的列表,你只需要定义一个空列表,比如'nums=[],但是这里你不需要列表
    • 实际上,您可以在输入时对数字求和,而不是在最后
    实际上,您可以大大简化代码

  • 您可以将所有数字作为单个字符串的输入
  • Split
    通过使用
  • 将每个字符串转换为整数并计算总和,同时将整数追加到列表中
  • 计算平均值并打印出来
  • 使用切片
    nums[::-1]
    反转列表并打印它
  • 再次征求意见
  • 输出将如下所示

    Type start if you wan't to do this thang: start
    Enter 20 numbers separated by a single space1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
    Average:  3.0
    The numbers in reverse are  [5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1]
    If that was wild for you, type start again, or type quit if that was lame: start
    Enter 20 numbers separated by a single space1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
    Average:  5.5
    The numbers in reverse are  [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    If that was wild for you, type start again, or type quit if that was lame: quit
    

    为什么不为循环设置一个
    。你应该读一本教科书或教程。@DYZ好吧,我所学的课程是关于编程理论的,这本教科书只涉及你用数组“可以”完成的事情,而不是如何完成。我在这里发帖寻求帮助。非常感谢!我现在明白了,我看到了它的工作代码。谢谢你帮了我的忙,而不是投我一票。事实上我学到了一些东西。现在我如何将这些数字分配给列表编号=[]并打印它们?谢谢您的回复!这也是一个很好的解决方案。然而,我发现了另一个需要。如果我只想打印他们给我的数字,并按相反的顺序进行操作,该怎么办?我已经更新了@jedimilk代码,包括如何反转数字,以及如何打印它们!请看一看:)谢谢你抽出时间来帮助我。我真的很感谢你的帮助,并清楚地评论了每一行的作用。谢谢你的帮助,祝你有一个美好的一天!顺便说一句,我爱你的用户名,你好。我知道你可能厌倦了这些问题,但我还有一个问题要问你。现在,如果我想从所有数字的平均值中减去输入的每个数字,然后打印出来呢?以正常或相反的顺序。
    
    Type start if you wan't to do this thang: start
    Enter 20 numbers separated by a single space1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
    Average:  3.0
    The numbers in reverse are  [5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1]
    If that was wild for you, type start again, or type quit if that was lame: start
    Enter 20 numbers separated by a single space1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
    Average:  5.5
    The numbers in reverse are  [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    If that was wild for you, type start again, or type quit if that was lame: quit