Skip to content

Fliffy ksenia#34

Open
FliffyKsenia wants to merge 41 commits into
mainfrom
FliffyKsenia
Open

Fliffy ksenia#34
FliffyKsenia wants to merge 41 commits into
mainfrom
FliffyKsenia

Conversation

@FliffyKsenia
Copy link
Copy Markdown
Collaborator

Часть заданий к лекциям 1, 2, 3 выполнены.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Оставил несколько замечаний.

Comment thread Practice/FliffyKsenia/lec.2.2.py Outdated
Comment thread Practice/FliffyKsenia/lec.2.2.py Outdated
Comment thread Practice/FliffyKsenia/lec1.py Outdated
@@ -0,0 +1,6 @@
radius = input("Введите радиус: ")
def square(r):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Определение функции (стр.2-3) должно быть обособлено двумя пустыми строками и идти после блока импортов.

radius = input("Введите радиус: ")
def square(r):
return math.pi * r ** 2
import math
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Импорты должны располагаться в начале файла с кодом.

Comment thread Practice/FliffyKsenia/lec3.4.py Outdated
@@ -0,0 +1,3 @@
#input data
i=input ("Введите данные")
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Согласно PEP8 знак присваивания должен быть с обеих сторон обособлен пробелами.

Comment thread Practice/FliffyKsenia/pep8task.py
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ОК. Но есть ещё замечания.

Comment thread Practice/FliffyKsenia/lec.2.2.py Outdated
Comment thread Practice/FliffyKsenia/lec.3.5.py
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошо. Осталось несколько старых замечаний, добавилось немного новых)

Comment thread Practice/FliffyKsenia/lec4.2.py Outdated
# проверяем являются введеные данные числом
if x.isdigit():
# формируем число на основе введенных цифровых данных пользователем
chislo = chislo + x
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно чуть упростить: chislo += x

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Осталось кое-что из старых замечаний и добавилось немного новых.

otvety = ['Ты сам-то понял, что написал? ', 'Аргументируй ', 'И? ']
# запрашиваем у пользователя ввод данных
fraza = input("Введите вопрос: ")
ind = 0 - 1
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно просто написать ind = -1

fraza = input("Введите вопрос: ")
ind = 0 - 1
while fraza.upper() != "ХВАТИТ":
ind = ind + 1
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А здесь: ind += 1

Comment thread Practice/FliffyKsenia/lec4.8.py
Comment thread Practice/FliffyKsenia/lec4.8.py Outdated
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавил пару комментариев. В целом, всё ОК. Надо только местами поправить стиль и оформление.

Comment thread Practice/FliffyKsenia/lec.4.5.py Outdated
Comment thread Practice/FliffyKsenia/lec.4.5.py Outdated
Comment thread Practice/FliffyKsenia/lec.4.5.py Outdated
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

Comment thread Practice/FliffyKsenia/lec.4.5.py Outdated
arr[pos1], arr[pos2] = arr[pos2], arr[pos1]

return arr
# вызываем функцию драйвера
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Что такое функция драйвера?

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вопросы и замечания еще остаются.

@@ -0,0 +1,9 @@
predlogenie = 'Вася играл Adagio, когда произведение было написано Andante'
print("The original string is : " + str(predlogenie))
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем строку оборачивать в str?

Comment thread Practice/FliffyKsenia/lec5.3.py Outdated
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавил новые замечания. И ст старыми тоже надо что-то делать.

Comment thread Practice/FliffyKsenia/lec5.4.py Outdated
Comment thread Practice/FliffyKsenia/lec5.5.py Outdated
dict_muzica = {"Adagio" : "медленно", "Andante" : "спокойно"}

res1 = predlogenie
for e in dict_muzica:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно чуть упростить:

for e, v in dict_muzica.items():
    res1 = res1.replace(e, v)

Всё-таки dict_muzica[e] - это целая операция, заставляющая интерпретатор искать в dict_muzica элемент с ключом e, чтоб получить его значение. А так мы сразу и ключ, и значение получаем.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Стало гораздо лучше. Но надо исправить и другие замечания по старым заданиям, и замечание по 7.2



#создаем класс Pupil
class Pupil:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pupil должен быть наследником Man из 1-го задания. И у него должно быть имя, задаваемое через __init__.


#определяем метод класса
def solve_task(self):
time.sleep(vremy_random)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нехорошо это, когда функция использует глобальные переменные (vremy_random). Лучше всё вычислять здесь.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread Practice/FliffyKsenia/lec12.1.server.py Outdated
Comment thread Practice/FliffyKsenia/lec12.2.client2.py Outdated
Comment thread Practice/FliffyKsenia/lec12.2.client2.py Outdated
Comment thread Practice/FliffyKsenia/lec12.2.server.py Outdated
Comment thread Practice/FliffyKsenia/lec12.2.server.py Outdated
Comment thread Practice/FliffyKsenia/lec12.2.server.py Outdated
Comment thread Practice/FliffyKsenia/lec12.3.py Outdated
Comment thread Practice/FliffyKsenia/lec9.2.py Outdated
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Замечания не исправлены.



class Pupil(Man):
def __init__(self, begin_time = 3, end_time = 6):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А где метод solve_task, который должен быть переопределен у Pupil согласно заданию? Как раз строки 12, 13 и вызов super().solve_task() должны быть в этом самом методе? А __init__ Pupil должен унаследовать от Man.

Задание 12.2 - не знаю как закрывать сервер, пока клиент не отключится.
Задания 9.2, 12.1, 12.3 - исправлено по замечаниям
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Решение lec12.2, конечно, крутое получилось... Всё предусмотрели)
Оставил комментарии по мелочи. Их и старые замечания надо бы поправить.
Еще я вопросы оставлял... если Вы на них отвечали, возможно, Ваши ответы находятся в статусе Pending - если да, то я их не увижу, пока Вы не найдёте и не нажмёте кнопку с надписью Submit.



# создаем класс для создания потока который будет обрабатывать входящие соединения
class Server_thread(Thread):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Название в CamelCase - это ServerThread и ServerMain

@@ -0,0 +1,52 @@
import pickle
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Надо поправить несоответствия PEP8 в этом файле: пустые строки между методами, определениями, классами, ограничения по длине строк.

# функция востановления данных о людях.
def restore():
# загружаем из файла данные о людях
with open('config_file_name', 'rb') as f:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Доделан файл согласно PEP8
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошо. Количество замечаний сокращается.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавил еще вопросы/замечания.

for j in range(3, i + 1, 2):
if (i % j == 0):
break
if j * j > i:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше просто в качестве верхней планки в условии цикла указать корень квадратный из i.

lst = []
for i in range(start, end + 1, 2):

if not ((i > 10) and (i % 10 == 5)):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В чем смысл отдельной проверки деления на 10?

print("Запускаем процедуру через потоки")
print(f"Найдено {len(thread_pusk())} простых чисела")
print("Запускаем через процессы")
print(f"Найдено {len(process_pusk())} простых чисела") No newline at end of file
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Еще хотелось бы увидеть ответы на вопросы к заданию (в виде комментариев).

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть существенные замечания по решению 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}')")
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Подстановка данных в запрос средствами форматирования Python - это открытые ворота для SQL-инъекций!
Аналогично в строках 19, 26 и 34.

cursor = conn.cursor()


def createdb(): # функция создания таблиц и заполнение данными
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Все-таки функция должна выполнять какую-то одну задачу: либо она создает какие-то таблицы, либо она их заполняет.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants