На уроке информатики. Программирование на Python 3. Случайние числа и сортировка списков.

Случайные числа получаем подключив стандартный модуль random.

import random

Код генерирует 10 случайных чисел и округляет их до 2 первых знаков.

import random
d=[]
for i in range(1,10):
    d.append(round(100*random.random()))
print (d)
for j in range(-1,-9,-1):
    print (d[j])

print (d) — вывод полученного списка, for j in range(-1,-9,-1): print (d[j]) — вывод разбиений.

Нахождение максимального и минимального элементов списка:

max=d[0]
min=d[0]
for i in range (9):
    if d[i]>max:
        max=d[i]
    if d[i]<min:
        min=d[i]
print («максимальное число «,max)
print («минимальное число «,min)

Сортировка:

for i in range(9):
    for j in range(9):
        if d[i]<d[j]:
            fl=d[i]
            d[i]=d[j]
            d[j]=fl
print (d)

программа полностью:

import random
d=[]
for i in range(1,10):
    d.append(round(100*random.random()))
print (d)
for j in range(-1,-9,-1):
    print (d[j])
#находим минимальное и максимальное значение элемента списка
max=d[0]
min=d[0]
for i in range (9):
    if d[i]>max:
        max=d[i]
    if d[i]<min:
        min=d[i]
print («максимальное число «,max)
print («минимальное число «,min)
#сортировка
#здесь переменная fl служит для перемещения меньшего значения в начало списка
for i in range(9):
    for j in range(9):
        if d[i]<d[j]:
            fl=d[i]
            d[i]=d[j]
            d[j]=fl
print (d)

Результат ее выполнения:

>>>
[46, 60, 45, 39, 87, 3, 42, 73, 99]
99
73
42
3
87
39
45
60
максимальное число  99
минимальное число  3
[3, 39, 42, 45, 46, 60, 73, 87, 99]

Вообще это нормальный код, хотя и смахивает на индусский, но таковым не является.

Еще пример сортировочного кода, который по принятой классификации можно отнести к быдлокоду — зато алгоритм очевиден. Находим максимальный (минимальный) элемент, заносим его в новый список (изначально пустой) и удаляем этот элемент из исходного списка. Так за N шагов (число элементов списка) заполняем по возрастанию (убыванию) элементами исходного списка, новый отсортированный список.

import random
d=[]
k=[]
for i in range(1,10):
    d.append(round(100*random.random()))
print (d)
k=k+d
dl=(len(d))
# сортировка 2
r=[]
i=0
while i<dl:
    max=d[0]
    f=0
    for j in range(len(d)):
        if d[j]>max:
            max=d[j]
            f=j
    r.append(d[f])
    del d[f]
    print(d)
    print (r)
    i=i+1
print(‘=====================================================================’)
print(«несортированная последовательность»,k)
print(»  сортированная последовательность»,r)

Результат выполнения.

>>>
[25, 37, 91, 3, 30, 11, 54, 81, 90]
[25, 37, 3, 30, 11, 54, 81, 90]
[91]
[25, 37, 3, 30, 11, 54, 81]
[91, 90]
[25, 37, 3, 30, 11, 54]
[91, 90, 81]
[25, 37, 3, 30, 11]
[91, 90, 81, 54]
[25, 3, 30, 11]
[91, 90, 81, 54, 37]
[25, 3, 11]
[91, 90, 81, 54, 37, 30]
[3, 11]
[91, 90, 81, 54, 37, 30, 25]
[3]
[91, 90, 81, 54, 37, 30, 25, 11]
[]
[91, 90, 81, 54, 37, 30, 25, 11, 3]
=====================================================================
несортированная последовательность [25, 37, 91, 3, 30, 11, 54, 81, 90]
  сортированная последовательность [91, 90, 81, 54, 37, 30, 25, 11, 3]
>>>

И собственно сортировка, как она и должна делаться в Питоне — методом sorted:

import random
d=[]
for i in range(1,10):
    d.append(round(100*random.random()))
print (d)
#сортировка
#обратная
f=sorted(d,reverse=True)
#прямая
g=sorted(d)
print(f)
print(g)

Результат:

>>>
[17, 98, 34, 12, 61, 21, 46, 8, 75]
[98, 75, 61, 46, 34, 21, 17, 12, 8]
[8, 12, 17, 21, 34, 46, 61, 75, 98]
>>>

Вот и все.

Запись опубликована в рубрике Образование, учебная работа с метками . Добавьте в закладки постоянную ссылку.