volhadl / pht

0 stars 0 forks source link

Python 01 #1

Open unrealsolver opened 4 years ago

unrealsolver commented 4 years ago

venv

Virtual Environment полезная вещь, но не столь необходимая для этого курса. В любом случае, используешь или не исопльзуешь venv - на GitHub залиать эту папку не стоило, она чисто локальная и должна быть добавлена в файл .gitignore. Я потом подробнее расскажу про все это

task1.py

Программа написана верно, но есть замечания. Я считаю, что в простоте есть свое изящество, есть свой смысл. Ты попыталась применить подходы промышленного программирования к решению простейшей задачи. В эту ловушку попадают многие новички. Переводя на примеры, то здесь абсолютно не нужны константы для '' и ' ', т.к. они используются лишь единожды и ты больше никогда не будешь вносить изменения в этот код. Даже если это промышленный код, то внесение новых абстакций должно быть чем-то оправдано. Например, упрощением дальнейшей поддержки, читаемости, скорости и т.д. Более серьезное замечание - в строках 9-10 ты изменяешь переменные STARS_Q и SPACE_Q. Они заданы в верхнем регистре, что традиционно указывает на константу и может сбивать с толку. Поэтому тут стоит переименовать в нижний регистр. В этом выражении `(SPACE SPACES_Q) + (SYMBOLSTARS_Q)нет необходимости в скобках. Читаемости это тоже не особо добавляет (в таком просто выражении). А вот на отсутствие пробелов вокруг второгостоит обратить внимание. В классическом код-стайле все операторы отделяются пробелами. ROWS_QиSPACES_Qмогут быть связаны через выражениеspaces_q = ROWS - stars_q / 2. А если использовать методstr.centerhttps://docs.python.org/3.7/library/stdtypes.html#str.center то вообще кода там практически не останется. Чтобы не прибалятьSTARS_Q += 2можно задать циклforс шагом 2.for i in range(0, ROWS, 2):`

task2.py

Немного перегруппировав ifы можно записать это все чуть короче, с меньшим числом принтов. Но в целом такой цели тут не стояло, лишь бы понятно было. YEAR не является константой, просто year.

volhadl commented 4 years ago

Привет

А зачем тут делить на 2 spaces_q = ROWS - stars_q / 2.

On Mon, 20 Jan 2020, 13:50 Ruslan, notifications@github.com wrote:

venv

Virtual Environment полезная вещь, но не столь необходимая для этого курса. В любом случае, используешь или не исопльзуешь venv - на GitHub залиать эту папку не стоило, она чисто локальная и должна быть добавлена в файл .gitignore. Я потом подробнее расскажу про все это task1.py

Программа написана верно, но есть замечания. Я считаю, что в простоте есть свое изящество, есть свой смысл. Ты попыталась применить подходы промышленного программирования к решению простейшей задачи. В эту ловушку попадают многие новички. Переводя на примеры, то здесь абсолютно не нужны константы для '' и ' ', т.к. они используются лишь единожды и ты больше никогда не будешь вносить изменения в этот код. Даже если это промышленный код, то внесение новых абстакций должно быть чем-то оправдано. Например, упрощением дальнейшей поддержки, читаемости, скорости и т.д. Более серьезное замечание - в строках 9-10 ты изменяешь переменные STARS_Q и SPACE_Q. Они заданы в верхнем регистре, что традиционно указывает на константу и может сбивать с толку. Поэтому тут стоит переименовать в нижний регистр. В этом выражении (SPACE SPACES_Q) + (SYMBOLSTARS_Q) нет необходимости в скобках. Читаемости это тоже не особо добавляет (в таком просто выражении). А вот на отсутствие пробелов вокруг второго стоит обратить внимание. В классическом код-стайле все операторы отделяются пробелами. ROWS_Q и SPACES_Q могут быть связаны через выражение spaces_q = ROWS - stars_q / 2. А если использовать метод str.center https://docs.python.org/3.7/library/stdtypes.html#str.center то вообще кода там практически не останется. Чтобы не прибалять STARS_Q += 2 можно задать цикл for с шагом 2. for i in range(0, ROWS, 2): task2.py

Немного перегруппировав ifы можно записать это все чуть короче, с меньшим числом принтов. Но в целом такой цели тут не стояло, лишь бы понятно было. YEAR не является константой, просто year.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/volhadl/pht/issues/1?email_source=notifications&email_token=AMGBXFHGCVKBDZKHZ3GXADLQ6V6WFA5CNFSM4KJCE5G2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IHKHMEA, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMGBXFAEU6XVQD3VUPBSFIDQ6V6WFANCNFSM4KJCE5GQ .

volhadl commented 4 years ago

А есть способ за игнорить файл который уже был залит на git?

On Tue, 21 Jan 2020, 09:58 Volha Dlugokanskaya, ms.dlugokanskaya@gmail.com wrote:

Привет

А зачем тут делить на 2 spaces_q = ROWS - stars_q / 2.

On Mon, 20 Jan 2020, 13:50 Ruslan, notifications@github.com wrote:

venv

Virtual Environment полезная вещь, но не столь необходимая для этого курса. В любом случае, используешь или не исопльзуешь venv - на GitHub залиать эту папку не стоило, она чисто локальная и должна быть добавлена в файл .gitignore. Я потом подробнее расскажу про все это task1.py

Программа написана верно, но есть замечания. Я считаю, что в простоте есть свое изящество, есть свой смысл. Ты попыталась применить подходы промышленного программирования к решению простейшей задачи. В эту ловушку попадают многие новички. Переводя на примеры, то здесь абсолютно не нужны константы для '' и ' ', т.к. они используются лишь единожды и ты больше никогда не будешь вносить изменения в этот код. Даже если это промышленный код, то внесение новых абстакций должно быть чем-то оправдано. Например, упрощением дальнейшей поддержки, читаемости, скорости и т.д. Более серьезное замечание - в строках 9-10 ты изменяешь переменные STARS_Q и SPACE_Q. Они заданы в верхнем регистре, что традиционно указывает на константу и может сбивать с толку. Поэтому тут стоит переименовать в нижний регистр. В этом выражении (SPACE SPACES_Q) + (SYMBOLSTARS_Q) нет необходимости в скобках. Читаемости это тоже не особо добавляет (в таком просто выражении). А вот на отсутствие пробелов вокруг второго стоит обратить внимание. В классическом код-стайле все операторы отделяются пробелами. ROWS_Q и SPACES_Q могут быть связаны через выражение spaces_q = ROWS - stars_q / 2. А если использовать метод str.center https://docs.python.org/3.7/library/stdtypes.html#str.center то вообще кода там практически не останется. Чтобы не прибалять STARS_Q += 2 можно задать цикл for с шагом 2. for i in range(0, ROWS, 2): task2.py

Немного перегруппировав ifы можно записать это все чуть короче, с меньшим числом принтов. Но в целом такой цели тут не стояло, лишь бы понятно было. YEAR не является константой, просто year.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/volhadl/pht/issues/1?email_source=notifications&email_token=AMGBXFHGCVKBDZKHZ3GXADLQ6V6WFA5CNFSM4KJCE5G2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IHKHMEA, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMGBXFAEU6XVQD3VUPBSFIDQ6V6WFANCNFSM4KJCE5GQ .