Conversation
IlyaOrlov
left a comment
There was a problem hiding this comment.
Хорошо, но есть пара вопросов/замечаний.
| for root, directories, files in os.walk(dirname): | ||
| for file in files: | ||
| if file[-3:] == '.mp3': | ||
| mp3s.append([root, file]) # лишний отступ |
There was a problem hiding this comment.
В этой строке с отступами все в порядке. PyCharm может подсвечивать эту строку, как ошибочную из-за строки 15. Интерпретатор Python требует, чтоб все строки внутри блока выравнивались одинаковыми отступами, однако не указывает конкретный размер этих отступов. Строка 15 и строки 16-19 относятся к одному блоку, но имеют разное выравнивание. Это несоответствие и сбивает PyCharm с толку. Согласно рекомендациям PEP8, размер отступа - 4 пробела, поэтому строки 16-19 можно считать отформатированными корректно, а строку 15 - ошибочной.
| f.write(str(self.map)) | ||
|
|
||
| def restore(self, dirname, restore_path): | ||
| with open(filename, '+') as f: # лишние отступы |
There was a problem hiding this comment.
Только в этой строке или во всем блоке 28-30?
| @@ -0,0 +1,14 @@ | |||
| def biggest (a, b): | |||
There was a problem hiding this comment.
Небольшие замечания по стилю:
- В строках 1, 3, 5, 6, 8 перед скобкой пробелы не нужны PEP8: Avoid extraneous whitespace in the following situations
- В строках 6 и 13 нужно отделить вызов функции от определения функции двумя строками PEP8: Surround top-level function and class definitions with two blank lines.
В остальном все ОК.
IlyaOrlov
left a comment
There was a problem hiding this comment.
Замечательно! Особенно решение с палиндромом! Но есть небольшие замечания.
| w = w.lower() | ||
|
|
||
| def palindrome(w): | ||
| if len(w) == 1 or len(w) == 0: |
There was a problem hiding this comment.
Можно чуть упростить: if len(w) < 2
| @@ -0,0 +1,16 @@ | |||
| w = input("Введите слово: ") | |||
There was a problem hiding this comment.
Небольшое замечание по стилю: определения функций и классов обычно пишутся в начале файла, а весь код в глобальной области видимости (вне каких-либо функций и классов) - внизу.
| else: | ||
| return 1 | ||
|
|
||
| test = palindrome(w) |
There was a problem hiding this comment.
Замечательная идея - реализовать функцию через рекурсию! Если вместо 0/1 возвращать True/False, то и проверку можно чуть упростить:
if palindrom(w):
print("Это палиндром")
else:
print("Введённое слово не является палиндромом")Есть, правда пара нюансов:
- w[1:-1] - это копирование подсписка, что может оказаться достаточно затратной по времени операцией; лучше передавать тот же список (w) и два индекса, которые будут сравниваться (1 и -1, 2 и -2, и так пока первый не превысит len(w)/2).
- Лучше если lower() будет выполняться внутри функции, т.к. эта операция тоже относится к проверке на палиндром, а чтоб lower() не выполнялся на каждом рекурсивном вызове, можно сделать функцию-обертку:
def palindrome_ci(w): # ci - case insensitive - регистронезависимый
def palindrome(w):
# здесь ваш код для рекурсивной проверки на палиндром
return palinfrome(w.lower())
w = input("Введите слово: ")
if palindrome_ci(w):
....| speed | ||
| coordinate | ||
|
|
||
| def Move(self): |
There was a problem hiding this comment.
Здесь и в стр.45: функции и методы без тела интерпретатор не пропустит. Надо добавить хотя бы pass.
|
|
||
|
|
||
| class Shot: | ||
| direction # выстрел имеет направление |
There was a problem hiding this comment.
Просто так объявлять поля класса бессмысленно. Надо им присвоить какие-то значения.
| @@ -0,0 +1,45 @@ | |||
| class Tank: | |||
There was a problem hiding this comment.
Нужно еще создать экземпляр класса Tank (ниже) и написать примеры вызова его методов.
| @@ -0,0 +1,4 @@ | |||
| num = int(input("Введите пятизначное число: ")) | |||
| for i in range(4, -1, -1): | |||
| n = (num % 10**(i + 1)) // 10**i | |||
There was a problem hiding this comment.
Да, если работать c num, как с числом, то проще не получится. И с этой точки зрения решение корректное. НО мы же запросто можем привести число к строковому типу и работать с ним, как с последовательностью символов (тем более input сразу возвращает строку), тогда и никакие сложные вычисления не потребуются.
No description provided.