Форум сайта python.su
0
Написал программу для лабораторной работы по дискретной математике: “Представление графов в памяти ЭВМ”. Мне кажется, код ужасен, работать конечно будет, но можно ведь намного лучше и короче?
Версия языка: 3.3 http://paste.org.ru/?w3r01n
Заранее спасибо за исправления и советы!
Прикреплённый файлы:
screenshot.60.jpg (89,9 KБ)
Офлайн
857
NickC
screenshot.60.jpg (89,9 KБ)
В каждом столбце должны стоять две единицы (либо 1 и -1 в случае ориентированного графа), а все остальные символы — нули.
NickCчто за graphType ?
но можно ведь намного лучшеdef MItoMS(MI): vertices = len(MI[0]) MS = [[0]*vertices for i in range(vertices)] if graphType.get(): for string in MI: for j in range(len(string)): if (string[j]==-1): startVertex = j if (string[j]==1): endVertex = j MS[startVertex][endVertex] = 1 print(startVertex) print(endVertex) else: for string in MI: for j in range(string.index(1)+1, len(string)): if string[j]: MS[string.index(1)][j], MS[j][string.index(1)] = 1, 1 return MS
NickCwiki. matrixdef MatriceToText(matrice):
Отредактировано py.user.next (Март 9, 2014 21:38:23)
Офлайн
0
Функции типа MItoMS получают как аргумент конвертированную информацию из textFrame'a. Т.е. в textFrame'e всё хранится как строка, а потом переводится в матрицы/списки для конвертирования в другой формат.
graphType это тип графа, который на данный момент содержится в textFrame'e.
Отредактировано NickC (Март 9, 2014 22:27:16)
Офлайн
857
код должен быть написан так, чтобы любой незнакомый человек мог его понять, не задумываясь
ты сам этим незнакомым человеком станешь, когда откроешь его через пару лет
Офлайн
0
Вот поэтому я и хочу понять, как правильно его форматировать, как называть переменные, где какие структуры данных использовать. Поэтому я прошу дать советы по приведенному коду.
Офлайн
857
NickCpython.org. pep8
как правильно его форматировать, как называть переменные
NickCэто всё должно быть в классе
где какие структуры данных использовать
NickCприведённый код написан в процедурном стиле - значит, глобальных переменных быть не должно (замени их на переданные)
Поэтому я прошу дать советы по приведенному коду.
NickCты просишь за пять минут объяснить то, что требует недель изучения
Поэтому я прошу дать советы по приведенному коду.
Офлайн