Сhange 1#18
Conversation
IlyaOrlov
left a comment
There was a problem hiding this comment.
Всё ОК. Только одно небольшое замечание!
IlyaOrlov
left a comment
There was a problem hiding this comment.
Хорошо, но есть несколько замечаний (в основном, по стилю).
…ugust22 into AlexGrishchenko
…Course2.0_August22 into AlexGrishchenko
IlyaOrlov
left a comment
There was a problem hiding this comment.
Всё хорошо, но есть замечания.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Всё супер! Но есть несколько замечаний!
IlyaOrlov
left a comment
There was a problem hiding this comment.
Почти) Осталось одно существенное и одно маленькое замечание.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Стало лучше, но замечания остались.
| def find_min_index(lst): | ||
| for i,d in enumerate(lst): | ||
| d = min(lst[i:]) | ||
| d, lst[i] = lst[i], d |
There was a problem hiding this comment.
Мы так элементы теряем. Не стоит здесь надеяться на стандартную функцию min.
Лучше в этой функции find_min_index просто найти индекс минимального элемента:
min_idx = 0
min_val = lst[min_idx]
for i, d in enumerate(lst):
if d < min_val:
min_val = d
min_idx = i
return min_idxА перестановку можно и за пределами функции сделать.
| if number == int(v): | ||
| for k in range(len(lst)): | ||
| del lst[k][y] | ||
| for y, v in enumerate(d): |
There was a problem hiding this comment.
Это получается, что мы дважды пробегаемся по одной и той же строке, сначала обращаясь к ней через lst, потом через lst_1 (опять же, глобальную переменную). Это неэффективно!
Помните задачу с занятия про удаление чётных элементов из списка? Здесь стоит применить тот же подход с циклом while и без лишних циклов в стр. 7-10.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Добавил еще несколько замечаний.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Одно замечание оставил. Ну и по старым задачам замечания тоже нужно исправить.
|
|
||
| class WrapStrToFile: | ||
| def __init__(self): | ||
| self.filepath = tempfile.mktemp() |
There was a problem hiding this comment.
Должен ли путь к файлу быть доступен вне класса? Если нет, то как это можно показать?
IlyaOrlov
left a comment
There was a problem hiding this comment.
Добавил ещё несколько замечаний.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Добавил новые замечания. Старые тоже нужно исправить!
| #-*- coding: utf-8 -*- | ||
| import re | ||
|
|
||
| st = re.compile(r"git [a-z]{3,4} \Z|git [a-z]{4,8} \W+[a-z]{1,3}\W+[a-z]{2,8}.[a-z]{6}|git [a-z]{4,8}.{55}|git [a-z]{3,4} [a-z]{6}.?[a-z]{2,4}|git [a-z]{3,4}") |
There was a problem hiding this comment.
ОК. Только PEP8 забывать не надо: строка длинновата получается.
| def __next__(self): | ||
| text = "" | ||
| while self.ind != -1: | ||
| file.seek(self.ind) |
There was a problem hiding this comment.
Чтобы не заморачиваться с seek и tell используйте self.file_new! Он сам будет сдвигаться с позиции на позицию при каждом self.file_new.read(1) и помнить свою предыдущую позицию. Даже self.ind не понадобится.
| lst = [] | ||
| for i in range(start, end + 1): | ||
| if i > 1: | ||
| for y in range(2, i): |
There was a problem hiding this comment.
Достаточно проверять делители до корня квадратного из i.
| lst_time2.append(time.perf_counter() - start) | ||
| print(f"Общее время расчета через многопроцессорность занял в секундах: {lst_time2}") | ||
|
|
||
| # Быстрее всего данная задача решается через многопоточность No newline at end of file |
There was a problem hiding this comment.
Стоит получше присмотреться к результатам! У многопоточности здесь вообще не оснований выбиться в лидеры.
Интересно, кстати, зачем хранить единственное значение - время работы алгоритма - в списке?
No description provided.