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