Python3最大到最小循环

Python3最大到最小循环,python,while-loop,Python,While Loop,我正在尝试编写一个程序,要求用户输入一系列数字。输入数字后,应按从大到小的顺序排列。这是我到目前为止所拥有的,我在弄清楚如何订购用户输入的数字时遇到了一些困难。我非常确定应该使用do-while循环,并且我正在试图找出如何实现它。用户还应输入-99以结束数字系列 //Define main function def main(): numbers() loop() //Get user input def numbers():

我正在尝试编写一个程序,要求用户输入一系列数字。输入数字后,应按从大到小的顺序排列。这是我到目前为止所拥有的,我在弄清楚如何订购用户输入的数字时遇到了一些困难。我非常确定应该使用do-while循环,并且我正在试图找出如何实现它。用户还应输入-99以结束数字系列

   //Define main function
    def main():
        numbers()
        loop()


    //Get user input
    def numbers():
        a=input()
        b=input()
        c=input()
        d=input()
        e=input()
        number1=int(a)
        number2=int(b)
        number3=int(c)
        number4=int(d)
        number5=int(e)

    //Define loop function
    def loop():

    //Call main function
    main()

也许我不应该帮助你达到这样的程度,学习和所有,但我完全无法抗拒张贴这一行:

def thingy():
    return sorted(map(int, iter(raw_input, '-99')), reverse=True)

也许是这样的:

#! /usr/bin/python3
numbers = []
while True:
    number = int(input('Give me a number: '))
    if number == -99: break
    numbers.append(number)
for number in sorted(numbers, reverse=True):
    print(number)

这肯定会让你发痒。@DesertIvy数组对于初学者来说太过了,只需使用一个普通的列表就可以了!你可以在一台电脑上使用。您不想编写自己的循环来排序。。。其他人已经为您完成了这项工作。或者您可以使用列表中的
.sort
方法:)我强烈建议您遵循教程,即使是简短的教程。在这个阶段,您甚至没有使用正确的注释语法。之后,回到这个项目。哦。。。很少见到的
iter
的2参数形式。这是一只难以捉摸的野兽!:)请不要吓跑新来的孩子。如果他想吓跑OP,他会使用
thingy=lambda:reversed(排序)(map(int,iter(raw_input,'-99'))
:)@chepner:
reversed(sorted(…)
只是排序(…,reverse=True)的一个更慢、更消耗内存的版本,所以不要这样做。我知道;我只是想让LISP成为我能做到的最漂亮的一行。排序(数字,reverse=True)
sorted(数字,key=lambda x:-x)
数字的数量以前是未知的。程序应该一直持续到用户点击-99,所以for循环不是最好的方法。@BasSwinckels-True,我刚刚阅读了-99部分并相应地更改了我的答案。
reverse=True
是最好的方法;但是,即使您没有这样做,
lambda x:-x
实际上已经内置了,作为
operator.neg
或只是
int.\uuuuuuuuuuu
,因为您正在将每个项转换为int。您并不总是需要
lambda