Python 生成随机数列表,然后对其进行排序

Python 生成随机数列表,然后对其进行排序,python,sorting,Python,Sorting,对python还不熟悉,了解一个小程序的逻辑,但有点卡住了。这就是我要做的 我希望程序生成5个随机数,然后使用冒泡排序按顺序排序。然后用户需要按任意顺序输入5个数字,程序会说它是否在那里 这是我到目前为止所做的 import random def randomNum() list = [] list.append(random.sample(range(1, 100), 5)) print list python的最初几天,所以我在语法方面有点混乱,但一开始看不出数字

对python还不熟悉,了解一个小程序的逻辑,但有点卡住了。这就是我要做的

我希望程序生成5个随机数,然后使用冒泡排序按顺序排序。然后用户需要按任意顺序输入5个数字,程序会说它是否在那里

这是我到目前为止所做的

import random

def randomNum()
    list = []
    list.append(random.sample(range(1, 100), 5))
    print list
python的最初几天,所以我在语法方面有点混乱,但一开始看不出数字生成函数有什么问题

然后,我会做些什么来解决这个问题

def bubble(list):
    length = len(list) - 1
    unsorted = True
    while unsorted:
        unsorted = False
        for element in range(0,length):
            #unsorted = False
            if badList[element] > list[element + 1]:
                 hold = list[element + 1]
                 list[element + 1] = list[element]
                 list[element] = hold
                 unsorted = True
                 print list
             else:
                 unsorted = True

     return list
在那之后,我不确定如何获取输入并比较它以查看它是否在该列表中。这是我到目前为止所拥有的

有指针吗?

如何获取输入 使用
raw\u input()
(Python 2)或
input()
(Python 3)。切勿在Python 2中使用
input()
,因为这是一个严重的安全问题

通解 如果您正在编写一个使用用户输入的模块,并且要与两个Python版本一起使用,那么可以使用Python的
try。。。除
机构外

try:
    input = raw_input
except NameError:
    pass
...
answer = input('Which is smaller, 3 or 4? ')
输入处理 请注意,
input()
返回一个
字符串
,即一个字符序列,因此,如果需要以下计算的数值,则可能需要进一步处理
答案

为此,您可以使用内置的
int()
,如上例所示,如果需要浮点数,也可以使用
float()

如何检查是否包含 如果要检查某个元素是否包含在容器中,应使用中的

 if 4 in [1,2,3,4,5]: print('Found!')
 ...
 if int(answer) in sorted_list:
     print('You win!')
警告 Python为您提供了不同类型的容器,
list
tuple
dict
set
。其中一些是为测试包含而优化的(即
dict
set
),而其他的则必须逐个元素进行扫描以检查是否包含


虽然此问题与您的情况无关,但如果您必须根据数百万个项目的列表检查是否包含数千个项目,则对容器使用
集合
而不是
列表
,可以获得更好的性能。

首先,我想向您展示完整的代码,稍后我将发表评论:

import random


def randomNum():
    return random.sample(range(1, 100), 5)

numbers_list = randomNum()
# print numbers_list

for _ in xrange(5):
    num = int(raw_input())
    if num in numbers_list:
        print "%d is in the list" % num
    else:
        print "There is no %d in the list" % num
现在一步一步:

1

def randomNum():
    return random.sample(range(1, 100), 5)
numbers_list = randomNum()
# print numbers_list
for _ in xrange(5):
    num = int(raw_input())
    if num in numbers_list:
        print "%d is in the list" % num
    else:
        print "There is no %d in the list" % num
在这里,我们创建了5个随机数的列表,然后返回它(稍后我们将需要它,因此我们使用
return
print
)。sample本身就是list,所以我们不需要将它附加到任何地方,因为我们将有类似[[1,2,3]]的结构,而它不是我们想要的

2

def randomNum():
    return random.sample(range(1, 100), 5)
numbers_list = randomNum()
# print numbers_list
for _ in xrange(5):
    num = int(raw_input())
    if num in numbers_list:
        print "%d is in the list" % num
    else:
        print "There is no %d in the list" % num
这里我们创建一个随机数列表,由
randomNum()生成

3

def randomNum():
    return random.sample(range(1, 100), 5)
numbers_list = randomNum()
# print numbers_list
for _ in xrange(5):
    num = int(raw_input())
    if num in numbers_list:
        print "%d is in the list" % num
    else:
        print "There is no %d in the list" % num
我们连续5次获取一个用户号码并检查它是否在列表中。我们在
中使用
。我认为很容易理解
中的
功能。如果num在列表中,我们打印
num在列表中
,否则我们打印
num不在列表中

5

def randomNum():
    return random.sample(range(1, 100), 5)
numbers_list = randomNum()
# print numbers_list
for _ in xrange(5):
    num = int(raw_input())
    if num in numbers_list:
        print "%d is in the list" % num
    else:
        print "There is no %d in the list" % num

我们在这里不使用排序,因为
中的
不需要对列表进行洗牌。

您可以使用:
feedback=raw\u input(“请输入某物:”)
打印反馈
不要使用
列表
作为名称,因为它会隐藏Python内置的
列表()
有许多缺陷。。。1) 函数通常返回对象,而你的函数则不返回。2)
random.sample()
返回一个列表,因此不需要外部列表。3) 最好将参数传递到函数中。4) 总之,您还可以直接调用
random.sample()
。感谢您提供的小指针,我已经纠正了第一点。仍然在使用restno no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no。非常感谢。