10个整数和1个输入,在Python3中询问得太早

10个整数和1个输入,在Python3中询问得太早,python,list,python-3.x,arraylist,Python,List,Python 3.x,Arraylist,我正在尝试创建一个程序,用户在其中插入10个整数,然后可以执行以下操作: 程序:“您想做什么?:1.显示最大的整数。2.显示最小的整数。3.显示所有数字加上一个小数的平均值。4.显示所有输入的整数。5.终止此程序。” 我已经走了这么远,现在我只是被卡住了。当我得到“请输入一个整数”时,我输入,比如说“1”。然后,我直接在那之后得到“请输入一个介于1到4之间的数字”。我还想在“请输入一个介于1到4之间的数字”列表中列出几个选项,但得到了:“TypeError:input最多需要1个参数,得到了5个

我正在尝试创建一个程序,用户在其中插入10个整数,然后可以执行以下操作:

程序:“您想做什么?:1.显示最大的整数。2.显示最小的整数。3.显示所有数字加上一个小数的平均值。4.显示所有输入的整数。5.终止此程序。”


我已经走了这么远,现在我只是被卡住了。当我得到“请输入一个整数”时,我输入,比如说“1”。然后,我直接在那之后得到“请输入一个介于1到4之间的数字”。我还想在“请输入一个介于1到4之间的数字”列表中列出几个选项,但得到了:“TypeError:input最多需要1个参数,得到了5个”。我还希望有第五种选择来终止该计划。我尝试了“刹车”,但我想它不是那样工作的?

我已经重新格式化并添加了一些位来让这个示例工作。希望你能关注我在评论中所做的更改,但请随时提问

nr=[]
for i in range(10):
    a=int(input("Please Enter an integer. "))
    nr.append(a)

#only calculate params after all numbers are entered (outside for loop)
s = [max(nr), min(nr), nr, sum(nr)/len(nr)]

while 1: #loop forever until user chooses "terminate this program"

    #print options in a nicely formatted way
    #triple quoted string allows newlines within literal definition (multiline strings)
    print("""What would you like to do?:
        1. Show me the biggest integer.
        2. Show me the smallest integer.
        3. Show me the average of all numbers combined with one decimal.
        4. Show me all the entered integers.
        5. Terminate this program.""")

    #we don't specifically need an integer if we're just picking a choice from a list of options
    z = input("input: ") 
    if z == "1": #choices are now strings so be sure to quote them
        print(s[0]) #be sure to select proper element from our list 's'
    elif z == "2":
        print(s[1])
    elif z == "3":
        print(s[3])
    elif z == "4":
        print(s[2])
    elif z == "5": #now that we are in a separate loop, break will bring us out of it
        break
    else:
        print("Please select a number between 1 to 5.")

这是工作版本。我将解释每个更改,让您开始编写Python

nr=[]
for i in range(10):
    a=int(input("Please Enter an integer. "))
    nr.append(a)

s = [max(nr), min(nr), sum(nr)/len(nr), nr]

z = 0
while not 1 <= z <= 5:    
    z = int((input("What would you like to do? (1) Max ; (2) Min; (3) Avg; (4) All; (5) None. ")))    
if z != 5:
    print(s[z-1])
nr=[]
对于范围(10)内的i:
a=int(输入(“请输入一个整数”)
第(a)号
s=[最大(nr)、最小(nr)、总和(nr)/长度(nr)、nr]
z=0

虽然现在不是1,但所有内容都以某种方式缩进,使其成为循环的一部分。将以
s=
开头的行(包括该行)一直向左移动。这是Python知道这些行不是循环的一部分的唯一方法。之后你还需要做其他事情,但这会让你开始。请记住,缩进在Python中具有重要的语法意义(该语言有点独特)。我尝试过转移所有内容,但这给了我“if z==1”上的“SyntaxError:invalid syntax”:“您可以用
print(s[z])
替换所有if语句。另外,在
s
数组中,至少根据您在描述中所说的,第3个元素应该与第4个元素交换。不需要第五个选项,无论如何,这个程序都会在这之后结束。事实上我错了。让我把事情安排好,我会发帖回答的。好的,谢谢。我之所以还想要一个“停止程序”选项,是因为我希望用户能够提前停止程序,如果他们愿意的话。谢谢!事实上这一切都有道理。哦,是的,我现在明白了!这很有道理,非常感谢!这是一个很好的解释。谢谢你花时间把所有的评论都放在那里,而不是把代码留给我@JoelGreek编程的第一条规则:“彻底地评论一切”。编程的第二条规则:“彻底地评论一切”:
nr=[]
for i in range(10):
    a=int(input("Please Enter an integer. "))
    nr.append(a)

s = [max(nr), min(nr), sum(nr)/len(nr), nr]

z = 0
while not 1 <= z <= 5:    
    z = int((input("What would you like to do? (1) Max ; (2) Min; (3) Avg; (4) All; (5) None. ")))    
if z != 5:
    print(s[z-1])
nr=[]
for i in range(10):
    a=int(input("Please Enter an integer. "))
    nr.append(a)

while True:
    s = [max(nr), min(nr), sum(nr)/len(nr), nr]
    z = int((input("What would you like to do? Please enter a number between 1 to 4.\n1> Max Value\n2> Min Value\n3> Average\n4> Show All\n5> Terminate\n")))
    if (z-1) in range(0,4):
        print(s[z-1])
    elif z == 5:
        break
    else:
        print("Please select a number between 1 to 4.")