Tkinter. Прорисовка точек и путей на холсте

# Скрипт размещает на холсте точки и маршруты из файлов
 
# Загрузка данных из файлов
points = {}
for line in open('points.txt'):
    line = line.split('\n')
    line = line[0]
    line = line.split(' ')
    line[1] = int(line[1])
    line[2] = int(line[2])
    points[line[0]] = line[1:]
 
graphs = {}
for line in open('graphs.txt'):
    line = line.split('\n')
    line = line[0]
    line = line.split(' ')
    graphs[line[0]] = line[1:]
 
 
from tkinter import *
window = Tk()
canv = Canvas(window,width=500,height=500,bg="white")
 
for i in points: # прорисовк

Чтение данных из файла и запись их в словари

Данные в программе будут загружаться из файла, следовательно надо подготовить текстовые файлы, где данные будут записаны по соответствующей форме.

Файл points.txt

a 30 30
b 80 50
c 50 100
d 150 150
e 100 350
f 250 80
g 300 150
h 370 100
i 240 260
j 440 350
k 320 420

Файл graphs.txt

Простой вариант программы с двумя заданными графами

# Есть точки на плоскости - points
# Есть пара ломаных линий-графов (маршрутов),
# проходящих по заданным точкам
# Пользователь вводит две точки
# Программа определяет какие графы содержать обе точки,

Программа "Поиск путей между точками"

Есть ряд точек на плоскости. Есть несколько неориентированных, незамкнутых графов, проходящих по этим точкам.

Пользователь вводит две точки из всего ряда точек. Надо указать какие графы содержат обе точки, и какой путь самый короткий.

Исходить из предположения, что из любой точки всегда можно попасть в любую другую точку, т.е. всегда существует хотя бы один путь, приводящий из одной точки в другую.

Этапы разработки программы смотрите ниже в подшивке.

Проверка наличия файла или каталога по указанному пути

Бывает, что надо проверить корректность введенного пользователем адреса файла или каталога. Сделать это можно с помощью функции os.path.exists, которая возвращает true, если объект файловой системы существует, и false – если нет.

Функция os.path.isfile проверяет, является ли объект файлом, а os.path.isdir — является ли каталогом.

Теги

os

Что делает os.walk()

Функция (метод) walk модуля os возвращает объект-генератор. Из полученного объекта можно получить кортежи для каждого каталога в переданной walk файловой иерархии. Каждый кортеж состоит из трех элементов:

  1. Абсолютный адрес очередного каталога (строка).
  2. Имена (без адреса) подкаталогов первого уровня для текущего каталога (список).
  3. Имена (без адреса) файлов данного каталога.

Посмотрим, как это работает. Допустим, у нас есть такое дерево каталогов:

Теги

os

Что можно делать с помощью функции int()

В языке программирования Python есть встроенная функция int(), которая возвращает целое число в десятичной системе счисления (класс int).

Если вызвать функцию int() без аргументов, она вернет 0.

>>> int()
0

Чаще всего функции int() передают только один аргумент, который может быть либо строкой, либо числом. Строки должны быть символьными представлениями целого числа, иначе будет сгенерирована ошибка ValueError.

Извлечение вложенных структур данных с помощью цикла for

Допустим есть вот такой кортеж:

>>> a = ([1,2],[3,4])

 

Извлечь из него вложенные списки очень просто:

>>> for i in a:
	print (i)
 
 
[1, 2]
[3, 4]

А вот при таком варианте извлекаются отдельные элементы: