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