import random
def main():
point=[]
for i in range(50):
point.append(int(random.random()*999))
for i in range(50):
i_min = i
for j in range(i+1, 50):
if point[j] < point[i_min]:
i_min = j
if i_min != i:
point[i], point[i_min] = point[i_min], point[i]
m=0
for p in point:
print(p,end=' ')
m=m+1
if m==10:
print()
m=0
print()
main()
想随机生成50个数字按照从小到大排列,但是代码有错本人找不出,求大佬提点
题主的代码,问题在第7行和第12行的缩进有问题,前者多缩进了一个位置,后者少缩进了一个位置。另外,生成随机整数,可以用randint,打印也不用再循环一次。比如,可以写成这样:
import random
def print_random_int(n):
point = [random.randint(0, 999) for i in range(n)]
for i in range(n):
i_min = i
for j in range(i+1, n):
if point[j] < point[i_min]:
i_min = j
if i_min != i:
point[i], point[i_min] = point[i_min], point[i]
print(point[i], end=' ')
if i%10 == 9:
print()
print_random_int(50)
不用sort的话就参考这个:https://blog.csdn.net/PY0312/article/details/89008130
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import random
def print_random_int(n):
point = [random.random()* 999 for i in range(n)]
#冒泡排序
for i in range(n):
for j in range(n-i-1):
if point[j] > point[j+1]:
point[j],point[j+1] = point[j+1],point[j]
else:
continue
# point.sort() #直接用list的方法排序
print(point)
print_random_int(50)