Programmer's Road
33 subscribers
48 photos
4 files
2 links
Привет! Я Макар, моя цель - стать программистом, тут я буду писать про свои успехи. Надеюсь каждый найдёт для себя что-то полезное.
Download Telegram
НотацииВПрограммировании

Или "нотации_в_программировании", а может легче просто написать через пробел?🤔
Часто для названия переменной не хватает одного слова, а через пробел никак не написать.😢

Способы соединить слова в одно длинное название:

В 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
👍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.
👍7👏5🤓3
Мы там ничего не майним, случайно?🧑‍💻

Такие комментарии писали под задачей про гипотезу Эйлера при попытке решить задачу в лоб.

Решение в лоб этой задачи займёт целый день, так что это не вариант, ну почти не вариант...🤔

Сначала я пытался решить через нахождение одного из слагаемых вычитанием, но ничего не получалось и решил решить задачу способом на скриншоте(сократил диапазон при поиске чисел в for).
👍9🔥3👎1
Название "Python" в честь змеи?

Нет, создатель языка часто смотрел комедийное шоу "Летающий цирк Монти Пайтона", в нём выслеживалась разница между технологиями, оттуда и пришло название, но на логотипы со змеями повлияли уже фанаты языка. А логотип создавался братом создателя Python.
👍8👏3😁2🤔1
Factorio

Игра, которая заслуженно нравится инженерам и людям технического склада ума. Полное прохождение игры - неплохой показатель умения решать различные технические проблемы. Цель игры - построить автоматизированную фабрику и запустить ракету, на фабрике случаются разные ошибки и недостатки материалов, всегда нужно находить новые ресурсы и пути.

Для продвижения в игре нужно исследовать новые технологии и всегда автоматизировать процессы. На хабре есть статья, как в этой игре делаю проверки перед собеседованиями. Я тоже строю фабрику в этой игре в перерывах между решением задачек на Python, прикрепил две самые важные части своей фабрики к сообщению.
👍10🤔2🤬2🤩2👎1🤡1
Какой из данных языков программирования является интерпретируемым? 🤔
Anonymous Quiz
0%
Go
5%
C
5%
Pascal
86%
Python
5%
Swift
0%
C++
0%
Rust
👍8
Отрицательная индексация строк

В Python есть возможность работать с отрицательными индексами, их удобно использовать, если нужно найти последний, предпоследний и т.д символ строки, чтобы долго не считать. Во многих языках программирования нет отрицательной индексации.🐍
👍11👏2
Срезы строк

С помощью среза мы можем получить несколько символов строки, создав диапазон индексов, разделенных двоеточием str0[x:y].

Диапазон срезов похож на диапазон range(). Первый индекс - начало среза(включительно), второй индекс - конец среза(не включительно).
В срезе можно использовать отрицательные индексы.

Полная статья

Друзья, я написал подробную статью про срезы. Ссылка: https://vc.ru/u/2666229-batal-kanal/945708-pro-crezy-v-python-prostym-yazykom
👍11👏3🤓1
Методы строк

Всем привет!👋 Выше я уже рассказывал про методы строк(upper() и lower()). Давайте изучим ещё пару методов!

Функция - это фрагмент кода для решения задачи. Примеры встроенных функций: int(), min(), max().
Метод - это функция, которая тесно работает с объектом. Примеры встроенных методов: lower() upper(), swapcase().

capitalize() - метод, который возвращает ту же строку, но в нижнем регистре и только самый первый символ в верхнем регистре.
Из 'pYThOn' получится 'Python'.

title() - метод, который возвращает ту же строку, но в нижнем регистре и первый символ каждого слова в верхнем регистре.

Из 'I'm learning Python' получится 'I'M Learning Python'.
У метода простой алгоритм, из-за этого символы после апострофа считаются за новое слово и начинаются с верхнего регистра.

swapcase() - метод, который возвращает ту же строку, но меняет регистр каждого символа.
Из 'pYThon' получится "PytHON'


Забавно, что каждый метод можно легко запомнить с помощью знаний английского:

title — заголовок
swapcase - поменять регистр
capitalize - писать прописными буквами
👍8😁2
Отличия между методами find(), rfind(), index(), rindex().

find() - метод, который находит индекс вхождения первого символа заданной подстроки и если подстрока будет не найдена, то метод возвращает -1. Метод проверяет строку с первого символа до последнего.

rfind() - этот метод похож на метод find(), но rfind() проверяет строку с последнего символа до первого(наоборот).

index() - этот метод похож на метод find(), но если подстрока будет не найдена, то метод index() возвращает ошибку.

rindex() - этот метод похож на метод index(), но rindex() проверяет строку с последнего символа до первого.

Все отличия выделены жирным шрифтом.
🔥9👍6👌3
И снова методы строк...

Есть несколько методов для проверки, какие типы символов содержаться в строке.

islower() - этот метод возвращает True, если все символы строки находятся в нижнем регистре и строка не пустая и False в противном случае.

isupper() - этот метод возвращает True, если все символы строки находятся в верхнем регистре и строка не пустая и False в противном случае.

isalpha() - этот метод возвращает True, если строка состоит только из буквенных символов и строка не пустая и False в противном случае.

isdigit() - этот метод возвращает True, если строка является целым числом(или же просто строка состоит только из чисел, ведь, например, в строке '123.456' есть ещё и точка) и строка не пустая и False в противном случае.

isalnum() - этот метод возвращает True, если строка состоит только из буквенных символов и цифр.

isspace() - этот метод возвращает True, если строка состоит только из пробелов или знаков табуляции(\t, \n, \r (\b не входит), возможно, есть какие-то ещё, но я знаю и слышал только про такие).

isprintable() - этот метод возвращает True, если строку можно вывести в консоль(это не \n, \t, \r, \b и другие).

isidentifier() - этот метод возвращает True, если строка подходит для названия переменной в Python(например, она не должна начинаться с цифры).

Есть ещё похожие методы(isdecimal(), isnumeric()), но в основном они взаимодействуют с большим количеством систем исчисления и сложны для понимания.
👍7👏2
Метод format() или f-строки?

Или легче всего форматировать строки с помощью конкатенации?
format() - метод, который заполняет свои заполнители заданными параметрами.
Пример:
name = input()
text = 'Hi, {}'.format(name)

f-строки - способ форматирования, который появился в версии 3.6, с таким способом код становится намного читабельнее и работает намного быстрее format().
Пример:
name = input()
text = f'Hi, {name}'

Ответ: f-строки считаются более быстрым и читабельным способом.
👍103🔥2
ASCII и Uncode

Любые данные в памяти должны храниться в виде числа в двоичной системе исчисления. Сначала символ переводится в специальную кодировку, а затем из этой кодировки в двоичный код. Есть разные таблицы этих цифровых кодов.

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

chr() и ord() в Python

В Python есть два метода для работы с этими кодировками.

chr() - переводит кодировку в символ по таблице Unicode.

ord() - переводит символ в кодировку по таблице Unicode.
👍7