Всем привет! Попробуйте изучить картинки и ответить на опрос ниже.
👍7
Какой код, находящий корень квадратного уравнение самый чистый? (Они пронумерованы на картинках) 🤔
Anonymous Quiz
9%
1
14%
2
68%
3
9%
4
👍8🤓5
Обмен значений переменных
Иногда приходится обменять значения двух и более переменных, кто-то пишет такой код для обмена значений:
num1 = num2
num2 = num1
Но он не работает, после таких операций значение переменных будет одинаковым, так как при втором присваивании num1 уже поменял своё значение и к num2 присваивается его же значение.
Можно использовать временную переменную:
temp = num1
num1 = num2
num2 = temp
Но в Python есть способ легче:
num1, num2 = num2, num1
Иногда приходится обменять значения двух и более переменных, кто-то пишет такой код для обмена значений:
num1 = num2
num2 = num1
Но он не работает, после таких операций значение переменных будет одинаковым, так как при втором присваивании num1 уже поменял своё значение и к num2 присваивается его же значение.
Можно использовать временную переменную:
temp = num1
num1 = num2
num2 = temp
Но в Python есть способ легче:
num1, num2 = num2, num1
👍10🔥5
Что выведет данный код?
Anonymous Quiz
16%
Ошибка
24%
123
4%
range(0, 123)
8%
range(123)
16%
1, 2, 3, 4, 5, 6, ..... , 122
8%
1, 2, 3, 4, 5, 6, ..... , 123
4%
122
12%
Пустой вывод
0%
0
8%
i
👍9🤯4
Сигнальные метки(флажки)
Если одна часть программы должна узнать о происходящем в другой части программы, то можно использовать флажки(flag = True, flag = False или is_even = False).
Например, нам нужно написать программу которая из 3 введённых чисел определяет их чётность, если все чётные то выводит "all are even", если нет, то "odd"
for i in range(10):
number = int(input())
if number % 2 == 0:
print("all are even")
else:
print("odd")
При таком коде, программа выведет информацию про каждое число, а нам нужно про все вместе.
flag = True
for i in range(10):
number = int(input())
if number % 2 != 0:
flag = False
if flag:
print("all are even")
else:
print("odd")
Такая программа будет работать правильно.
Если одна часть программы должна узнать о происходящем в другой части программы, то можно использовать флажки(flag = True, flag = False или is_even = False).
Например, нам нужно написать программу которая из 3 введённых чисел определяет их чётность, если все чётные то выводит "all are even", если нет, то "odd"
for i in range(10):
number = int(input())
if number % 2 == 0:
print("all are even")
else:
print("odd")
При таком коде, программа выведет информацию про каждое число, а нам нужно про все вместе.
flag = True
for i in range(10):
number = int(input())
if number % 2 != 0:
flag = False
if flag:
print("all are even")
else:
print("odd")
Такая программа будет работать правильно.
👍11🤔2
Как найти сумму чисел от 1 до X
Первое, что приходит в голову - это цикл for
number = int(input())
total = 0
for i in range(1, number):
total += i
print(total)
Но для более короткого и быстрого способа есть формула
(X * (X + 1)) / 2
В итоге, мы получаем такой код:
number = int(input())
print((number * (number + 1)) / 2)
Первое, что приходит в голову - это цикл for
number = int(input())
total = 0
for i in range(1, number):
total += i
print(total)
Но для более короткого и быстрого способа есть формула
(X * (X + 1)) / 2
В итоге, мы получаем такой код:
number = int(input())
print((number * (number + 1)) / 2)
👍12🤔3🤯2
👍8🤬4🤔2
Философия Python
Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python». Оригинал можно увидеть, введя import this в интерпретатор.
А вот версия в переводе:
1. Красивое лучше, чем уродливое;
2. Явное лучше, чем неявное;
3. Простое лучше, чем сложное;
4. Сложное лучше, чем запутанное;
5. Плоское лучше, чем вложенное;
6. Разреженное лучше, чем плотное;
7. Читаемость имеет значение;
8. Особые случаи не настолько особые, чтобы нарушать правила;
9. При этом практичность важнее безупречности;
10. Ошибки никогда не должны замалчиваться;
11. Если не замалчиваются явно;
12. Встретив двусмысленность, отбрось искушение угадать;
13. Должен существовать один — и, желательно, только один — очевидный способ сделать это;
14. Хотя он поначалу может быть и не очевиден, если вы не голландец;
15. Сейчас лучше, чем никогда;
16. Хотя никогда зачастую лучше, чем прямо сейчас;
17. Если реализацию сложно объяснить — идея плоха;
18. Если реализацию легко объяснить — идея, возможно, хороша;
19. Пространства имён — отличная вещь! Давайте будем делать их больше!
Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python». Оригинал можно увидеть, введя import this в интерпретатор.
А вот версия в переводе:
1. Красивое лучше, чем уродливое;
2. Явное лучше, чем неявное;
3. Простое лучше, чем сложное;
4. Сложное лучше, чем запутанное;
5. Плоское лучше, чем вложенное;
6. Разреженное лучше, чем плотное;
7. Читаемость имеет значение;
8. Особые случаи не настолько особые, чтобы нарушать правила;
9. При этом практичность важнее безупречности;
10. Ошибки никогда не должны замалчиваться;
11. Если не замалчиваются явно;
12. Встретив двусмысленность, отбрось искушение угадать;
13. Должен существовать один — и, желательно, только один — очевидный способ сделать это;
14. Хотя он поначалу может быть и не очевиден, если вы не голландец;
15. Сейчас лучше, чем никогда;
16. Хотя никогда зачастую лучше, чем прямо сейчас;
17. Если реализацию сложно объяснить — идея плоха;
18. Если реализацию легко объяснить — идея, возможно, хороша;
19. Пространства имён — отличная вещь! Давайте будем делать их больше!
👍9❤3🤔3🔥1👏1
НотацииВПрограммировании
Или "нотации_в_программировании", а может легче просто написать через пробел?🤔
Часто для названия переменной не хватает одного слова, а через пробел никак не написать.😢
Способы соединить слова в одно длинное название:
В Python принято использовать snake_case
Слова разделяются символами подчёркивания — они как бы ползут по строке, в результате получается длинное название.
Пример: last_digit
camelCase - наверно, самая популярная нотация.
Первое слово пишется со строчной буквы, следующие — с заглавной, разделителей между составными частями нет. Торчащие посреди итогового названия заглавные буквы напомнили кому-то горбы верблюда — так возникло название нотации.
Пример: lastDigit
PascalCase - Тот же camelCase, но все слова, даже первое, начинаются с заглавной буквы.
Пример: LastDigit
Есть много нотаций, но это были 3 самых основных.
Или "нотации_в_программировании", а может легче просто написать через пробел?🤔
Часто для названия переменной не хватает одного слова, а через пробел никак не написать.😢
Способы соединить слова в одно длинное название:
В Python принято использовать snake_case
Слова разделяются символами подчёркивания — они как бы ползут по строке, в результате получается длинное название.
Пример: last_digit
camelCase - наверно, самая популярная нотация.
Первое слово пишется со строчной буквы, следующие — с заглавной, разделителей между составными частями нет. Торчащие посреди итогового названия заглавные буквы напомнили кому-то горбы верблюда — так возникло название нотации.
Пример: lastDigit
PascalCase - Тот же camelCase, но все слова, даже первое, начинаются с заглавной буквы.
Пример: LastDigit
Есть много нотаций, но это были 3 самых основных.
👍11👏3🤨1
Визуализатор кода "Python Tutor"
Это средство, которое помогает визуализировать код и помогает лучше и яснее понимать его.
Этот визуализатор может проанализировать код не только на Python, но и на C, C++, Java, JavaScript.
На мой взгляд, интерфейс очень удобный и понятный. Иногда, он помогает разобраться в программах с большим количеством данных.
Ссылка: https://pythontutor.com/render.html#mode=edit
Это средство, которое помогает визуализировать код и помогает лучше и яснее понимать его.
Этот визуализатор может проанализировать код не только на Python, но и на C, C++, Java, JavaScript.
На мой взгляд, интерфейс очень удобный и понятный. Иногда, он помогает разобраться в программах с большим количеством данных.
Ссылка: https://pythontutor.com/render.html#mode=edit
👍11🔥3🤩2
Code Review
Ревью кода – проверка кода с целью исправления ошибок и неточностей, сделанных при начальной разработке. Скорее всего, код ревью будет выполнять программист с большим опытом, он может исправить ошибки, улучшить производительность и читабельность кода.
Недавно я тоже решал самые простые задачки на код ревью, более подробные статьи про код ревью можно почитать на хабре.
Ревью кода – проверка кода с целью исправления ошибок и неточностей, сделанных при начальной разработке. Скорее всего, код ревью будет выполнять программист с большим опытом, он может исправить ошибки, улучшить производительность и читабельность кода.
Недавно я тоже решал самые простые задачки на код ревью, более подробные статьи про код ревью можно почитать на хабре.
🔥7👍5
Три простых способа выйти из вложенных циклов Python при выполнении условия во внутреннем цикле
С помощью break мы можем выйти только из ближайшего цикла
1. Через сигнальную метку (flag).
Определяем переменную и используем её в качестве сигнальной метки. Пример:
flag = False
for i in range(3):
for j in range(1, 3):
if i == j:
flag = True
break
print(i, j)
if flag:
break
2.Проверить то же условие несколько раз.
Похожий способ. Пример:
for i in range(3):
for j in range(1, 3):
if i == j:
break
print(i, j)
if i == j:
break
3.For-Else.
Редкая конструкция. Даже создатель Python избавился бы от неё, если создавал свой ЯП заново.
for i in range(3):
for j in range(1, 3):
if i == j:
break
print(i, j)
else:
continue
break
Пока что это всё, скорее есть ещё способы, но мне знакомы только такие. Да, 1 и 2 способ очень похожи по задумке. Наверно, из этих трёх чаще всего лучше будет способ через flag.
С помощью break мы можем выйти только из ближайшего цикла
1. Через сигнальную метку (flag).
Определяем переменную и используем её в качестве сигнальной метки. Пример:
flag = False
for i in range(3):
for j in range(1, 3):
if i == j:
flag = True
break
print(i, j)
if flag:
break
2.Проверить то же условие несколько раз.
Похожий способ. Пример:
for i in range(3):
for j in range(1, 3):
if i == j:
break
print(i, j)
if i == j:
break
3.For-Else.
Редкая конструкция. Даже создатель Python избавился бы от неё, если создавал свой ЯП заново.
for i in range(3):
for j in range(1, 3):
if i == j:
break
print(i, j)
else:
continue
break
Пока что это всё, скорее есть ещё способы, но мне знакомы только такие. Да, 1 и 2 способ очень похожи по задумке. Наверно, из этих трёх чаще всего лучше будет способ через flag.
👍7👏5🤓3
Мы там ничего не майним, случайно?🧑💻
Такие комментарии писали под задачей про гипотезу Эйлера при попытке решить задачу в лоб.
Решение в лоб этой задачи займёт целый день, так что это не вариант, ну почти не вариант...🤔
Сначала я пытался решить через нахождение одного из слагаемых вычитанием, но ничего не получалось и решил решить задачу способом на скриншоте(сократил диапазон при поиске чисел в for).
Такие комментарии писали под задачей про гипотезу Эйлера при попытке решить задачу в лоб.
Решение в лоб этой задачи займёт целый день, так что это не вариант, ну почти не вариант...🤔
Сначала я пытался решить через нахождение одного из слагаемых вычитанием, но ничего не получалось и решил решить задачу способом на скриншоте(сократил диапазон при поиске чисел в for).
👍9🔥3👎1
Название "Python" в честь змеи?
Нет, создатель языка часто смотрел комедийное шоу "Летающий цирк Монти Пайтона", в нём выслеживалась разница между технологиями, оттуда и пришло название, но на логотипы со змеями повлияли уже фанаты языка. А логотип создавался братом создателя Python.
Нет, создатель языка часто смотрел комедийное шоу "Летающий цирк Монти Пайтона", в нём выслеживалась разница между технологиями, оттуда и пришло название, но на логотипы со змеями повлияли уже фанаты языка. А логотип создавался братом создателя Python.
👍8👏3😁2🤔1