Fliffy ksenia#34
Conversation
IlyaOrlov
left a comment
There was a problem hiding this comment.
Оставил несколько замечаний.
| @@ -0,0 +1,6 @@ | |||
| radius = input("Введите радиус: ") | |||
| def square(r): | |||
There was a problem hiding this comment.
Определение функции (стр.2-3) должно быть обособлено двумя пустыми строками и идти после блока импортов.
| radius = input("Введите радиус: ") | ||
| def square(r): | ||
| return math.pi * r ** 2 | ||
| import math |
There was a problem hiding this comment.
Импорты должны располагаться в начале файла с кодом.
| @@ -0,0 +1,3 @@ | |||
| #input data | |||
| i=input ("Введите данные") | |||
There was a problem hiding this comment.
Согласно PEP8 знак присваивания должен быть с обеих сторон обособлен пробелами.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Хорошо. Осталось несколько старых замечаний, добавилось немного новых)
| # проверяем являются введеные данные числом | ||
| if x.isdigit(): | ||
| # формируем число на основе введенных цифровых данных пользователем | ||
| chislo = chislo + x |
There was a problem hiding this comment.
Можно чуть упростить: chislo += x
IlyaOrlov
left a comment
There was a problem hiding this comment.
Осталось кое-что из старых замечаний и добавилось немного новых.
| otvety = ['Ты сам-то понял, что написал? ', 'Аргументируй ', 'И? '] | ||
| # запрашиваем у пользователя ввод данных | ||
| fraza = input("Введите вопрос: ") | ||
| ind = 0 - 1 |
There was a problem hiding this comment.
Можно просто написать ind = -1
| fraza = input("Введите вопрос: ") | ||
| ind = 0 - 1 | ||
| while fraza.upper() != "ХВАТИТ": | ||
| ind = ind + 1 |
IlyaOrlov
left a comment
There was a problem hiding this comment.
Добавил пару комментариев. В целом, всё ОК. Надо только местами поправить стиль и оформление.
| arr[pos1], arr[pos2] = arr[pos2], arr[pos1] | ||
|
|
||
| return arr | ||
| # вызываем функцию драйвера |
IlyaOrlov
left a comment
There was a problem hiding this comment.
Вопросы и замечания еще остаются.
| @@ -0,0 +1,9 @@ | |||
| predlogenie = 'Вася играл Adagio, когда произведение было написано Andante' | |||
| print("The original string is : " + str(predlogenie)) | |||
There was a problem hiding this comment.
Зачем строку оборачивать в str?
IlyaOrlov
left a comment
There was a problem hiding this comment.
Добавил новые замечания. И ст старыми тоже надо что-то делать.
Добавлено задание 7.2
| dict_muzica = {"Adagio" : "медленно", "Andante" : "спокойно"} | ||
|
|
||
| res1 = predlogenie | ||
| for e in dict_muzica: |
There was a problem hiding this comment.
Можно чуть упростить:
for e, v in dict_muzica.items():
res1 = res1.replace(e, v)Всё-таки dict_muzica[e] - это целая операция, заставляющая интерпретатор искать в dict_muzica элемент с ключом e, чтоб получить его значение. А так мы сразу и ключ, и значение получаем.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Стало гораздо лучше. Но надо исправить и другие замечания по старым заданиям, и замечание по 7.2
|
|
||
|
|
||
| #создаем класс Pupil | ||
| class Pupil: |
There was a problem hiding this comment.
Pupil должен быть наследником Man из 1-го задания. И у него должно быть имя, задаваемое через __init__.
|
|
||
| #определяем метод класса | ||
| def solve_task(self): | ||
| time.sleep(vremy_random) |
There was a problem hiding this comment.
Нехорошо это, когда функция использует глобальные переменные (vremy_random). Лучше всё вычислять здесь.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Просьба исправить ранее оставленные мною замечания. А то вроде как что-то делается, но до main не доходит. Поэтому результата не видно.
|
|
||
|
|
||
| class Pupil(Man): | ||
| def __init__(self, begin_time = 3, end_time = 6): |
There was a problem hiding this comment.
А где метод solve_task, который должен быть переопределен у Pupil согласно заданию? Как раз строки 12, 13 и вызов super().solve_task() должны быть в этом самом методе? А __init__ Pupil должен унаследовать от Man.
Задание 12.2 - не знаю как закрывать сервер, пока клиент не отключится. Задания 9.2, 12.1, 12.3 - исправлено по замечаниям
IlyaOrlov
left a comment
There was a problem hiding this comment.
Решение lec12.2, конечно, крутое получилось... Всё предусмотрели)
Оставил комментарии по мелочи. Их и старые замечания надо бы поправить.
Еще я вопросы оставлял... если Вы на них отвечали, возможно, Ваши ответы находятся в статусе Pending - если да, то я их не увижу, пока Вы не найдёте и не нажмёте кнопку с надписью Submit.
|
|
||
|
|
||
| # создаем класс для создания потока который будет обрабатывать входящие соединения | ||
| class Server_thread(Thread): |
There was a problem hiding this comment.
Название в CamelCase - это ServerThread и ServerMain
| @@ -0,0 +1,52 @@ | |||
| import pickle | |||
There was a problem hiding this comment.
Надо поправить несоответствия PEP8 в этом файле: пустые строки между методами, определениями, классами, ограничения по длине строк.
| # функция востановления данных о людях. | ||
| def restore(): | ||
| # загружаем из файла данные о людях | ||
| with open('config_file_name', 'rb') as f: |
There was a problem hiding this comment.
Функции и методы не должны зависеть от глобальных переменных, иначе они теряют гибкость и ухудшается понимание, что с чем связано.
Доделан файл согласно PEP8
IlyaOrlov
left a comment
There was a problem hiding this comment.
Хорошо. Количество замечаний сокращается.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Добавил еще вопросы/замечания.
| for j in range(3, i + 1, 2): | ||
| if (i % j == 0): | ||
| break | ||
| if j * j > i: |
There was a problem hiding this comment.
Лучше просто в качестве верхней планки в условии цикла указать корень квадратный из i.
| lst = [] | ||
| for i in range(start, end + 1, 2): | ||
|
|
||
| if not ((i > 10) and (i % 10 == 5)): |
There was a problem hiding this comment.
В чем смысл отдельной проверки деления на 10?
| print("Запускаем процедуру через потоки") | ||
| print(f"Найдено {len(thread_pusk())} простых чисела") | ||
| print("Запускаем через процессы") | ||
| print(f"Найдено {len(process_pusk())} простых чисела") No newline at end of file |
There was a problem hiding this comment.
Еще хотелось бы увидеть ответы на вопросы к заданию (в виде комментариев).
IlyaOrlov
left a comment
There was a problem hiding this comment.
Есть существенные замечания по решению 14.2
| "CREATE TABLE IF NOT EXISTS manufacturers (Manufacturersid INTEGER PRIMARY KEY AUTOINCREMENT, name text)") | ||
| manufactors = ['adidas', 'nike ', 'noname'] # вводим список для заполения таблицы производителей | ||
| for m in manufactors: # заполняем таблицу производителей в цикле. | ||
| cursor.execute(f"insert into manufacturers (name) values ('{m}')") |
There was a problem hiding this comment.
Подстановка данных в запрос средствами форматирования Python - это открытые ворота для SQL-инъекций!
Аналогично в строках 19, 26 и 34.
| cursor = conn.cursor() | ||
|
|
||
|
|
||
| def createdb(): # функция создания таблиц и заполнение данными |
There was a problem hiding this comment.
Все-таки функция должна выполнять какую-то одну задачу: либо она создает какие-то таблицы, либо она их заполняет.
Часть заданий к лекциям 1, 2, 3 выполнены.