小白自学python

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)