Анализ целочисленной выборки

fname = input('Имя файла: ')
ffile = open(fname)
sample = [] # список значений
for i in ffile:
    i = i.split()
    for j in i:
        j = int(j)
        sample.append(j)
 
length = len(sample)
minimum = min(sample)
maximum = max(sample)
print('Длина последовательности:',length)
print('Минимальное значение:',minimum)
print('Максимальное значение:',maximum)
 
def make_urange(urange,uranges): # заполняет список диапазонов
    i = minimum
    while i <= maximum:
        l = []
        l.append(i)
        i = i + urange
        if i < maximum:
          

Генерация последовательностей случайных объектов (равновероятных)

Алгоритм работы программы

  1. Программа запрашивает, какой тип данных хочет получить пользователь - целые числа, числа с плавающей точкой, символы (буквы), слова (в данном случае, наборы случайных символов).
  2. Вызывается соответствующая функция, которая возвращает либо список случайных объектов, указанного типа, либо строку из случайных символов.

Использование lambda-выражений

lambda-выражения представляют собой особый способ записи функции в виде выражения, а не инструкции. Такие функции можно присвоить переменной, обычно они достаточно короткие и простые.

lambda-выражения используются там, где нет смысла определять настоящую функцию или это невозможно сделать.

Пример 1. Переменной a присваивается lambda-функция.

# first example
a = lambda x: print(x)
a(4)
a('yyy')

Результат:

Теги

Скроллеры (Scrollbar). Получение данных из списков (Listbox)

Скрипт выводит в окно два списка со скроллерами, кнопку и холст.

В списках выбираются координаты. При щелчке на кнопке на холсте рисуется точка в выбранной позиции.

Проблема. После выбора элемента во одном списке, в другом снимается выделение. Пользователь не видит пары координат, а только последнюю координату.

Теги

Операции над множествами

Пользователь задает две последовательности, разделяя элементы (строки, символы, числа) внутри каждой пробелами.

Сначала ввод пользователя сохраняется в виде двух длинных строк. Затем преобразуется в два списка и, наконец, в два множества.

Над парой множеств выполняются операции объединения, пересечения, разности и симметрической разности.

Разноцветные линии

Надо получить линии разного цвета. Количество линий при этом заранее неизвестно, их может быть достаточно много.

Для каждой линии цвет определяется случайным образом.

Осталось непонятным, как переводится десятичное представление числа в шестнадцатеричный формат.

Теги

Размещение виджет

from tkinter import *
window = Tk()
canv = Canvas(window,width=500,height=500,bg="white")
 
lab_ent1 = Label(window,text="First point:")
ent1 = Entry(window,width=2)
lab_ent2 = Label(window,text="Second point:")
ent2 = Entry(window,width=2)
but_select = Button(window,text="Paths")
lab_minpath = Label(window,text="XXXXXX")
 
lab_list = Label(window,text="Graph:")
list_graphs = Listbox(window,selectmode=SINGLE,height=6)
but_all = Button(window,text="All graphs")
 
canv.grid(row=0,column=0,rowspan=40)
lab_ent1.grid(row=0,column=1,sticky=E,padx=10)
ent1.grid(row

Описание интерфейса и возможностей программы

Функциональность

При загрузке на холсте отображаются только точки.
Есть кнопка "Отобразить все графы", которая отображает на холсте все загруженные из файла пути. При нажатии на эту кнопку, помимо прочего, в правом верхнем углу холста появляются обозначения цвета линий и названия графов.
Два текстовых поля для ввода задаваемых точек.
Кнопка "Отобразить возможные пути". При нажатии на эту кнопку, помимо прочего, в правом верхнем углу холста появляются обозначения цвета линий и названия графов.
Определяется самый короткий путь. Он выводится в метке.