2015-07-03 62 views
0

下面是我的代码,这会产生0到101如何将此Python程序的结果从最低值排序到最高值?

import random 

x = int(raw_input("Enter desired number: ")) 

def randoTaker(): 
    print(random.randint(0, 101)) 

randoTaker() 

for i in range(x-1): 
    randoTaker() 

之间的随机数X实例我的问题:如何从低这些结果高排序?例如:假设我的输入值为4的当前输出为12,34,5,45。我期望的结果是5,12,34,45。

任何帮助将非常感谢!

+2

https://wiki.python.org/moin/HowTo/Sorting –

+0

你有搜索[python的文档(https://docs.python.org/2/library/ functions.html#排序)? –

+0

打印未排序后是否要排序? –

回答

4

下面怎么样;

import random 

x = int(raw_input("Enter desired number: ")) 

def randoTaker(): 
    return random.randint(0, 101) 

for j in sorted([randoTaker() for i in range(x)]): 
    print j 
+0

正是我在找什么,谢谢! –

0

问题是,您正在打印结果而不是存储它们。你可能想将它们保存在一个列表,然后排序列表:

import random 

x = int(raw_input("Enter desired number: ")) 

def randoTaker(): 
    return random.randint(0, 101) 

results = [] 
for i in range(x-1): 
    results.append(randoTaker()) 

results.sort() 

print results 

如果你真的想,你可以使用列表理解:

import random 

x = int(raw_input("Enter desired number: ")) 

def randoTaker(): 
    return random.randint(0, 101) 

print sorted([randoTaker() for i in range(x-1)]) 
0

首先,你只是打印你的功能内的价值。如果您想对生成的随机数进行排序,您应该考虑返回数字,然后将它们添加到列表中。

将所有数字添加到列表后,可以使用list.sort()函数或sorted()函数对列表进行排序。

例子:

import random 

x = int(raw_input("Enter desired number: ")) 

def randoTaker(): 
    return random.randint(0, 101) 

print(randoTaker()) 

randlst = [] 
for i in range(x-1): 
    randlst.append(randoTaker()) 

randlst.sort() 
print(randlst) 
相关问题