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

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

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

chr() и ord() в Python

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

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

ord() - переводит символ в кодировку по таблице Unicode.
👍7
Привет!👋 Что выведет данный код? Попробуй ответить на опрос ниже.🐍
👍92👎1🔥1
👍6🤔3
Разбор вчерашнего кода💻

Мы присваиваем переменной список с городами и выводим его.
При выводе списка, не распаковав его, он сохраняет квадратные скобки, запятые и при строковых типах данных сохраняются кавычки, если кавычки были двойные, то они становятся одинарными. Но почему ответ оказался с двойными кавычками?🐍

Если посмотреть повнимательнее, то перед двойными кавычками стоят одинарные и программа не сможет преобразовать двойные кавычки, так как в элементе уже содержатся одинарные кавычки.
👍10🔥32
append() и extend()

Эти два метода служат для добавления элементов в список.

append() - добавляет элемент в конец списка. Список может быть уже с элементами или пустой. В качестве параметров он может принимать многие типы данных(в том числе и сами списки).

extend() - дополняет список заданным списком в параметрах. Если в качестве параметра задать строку, то он примет строку, как список и добавит каждый символ в список отдельно.
👍6👏3
Channel photo updated
Работа со списками

Многие встроенные методы и функции со строками подходят для работы со списками. Главное отличие списков от строк:
Списки - изменяемые, а строки неизменяемые.

len() - встроенная функция, которая возвращает количество элементов в списке.

Срезы и индексация - в списка тоже есть индексация, но в отличии от строк, под индексом списка хранится целый элемент, а не символ.

del - с помощью оператора del мы можем удалить элемент из списка по его индексу.

in, not in - эти операторы определяют, находится ли заданный элемент(полностью без изменения) в списке.
👍7👏32👌1
Почему вывод '\' выдаёт ошибку и как это исправить?

Если мы попытаемся вывести '\'(print('\')), то мы получим ошибку.
Компилятор посчитает это за незаконченный управляющий символ(\t, \b, \n, \r и другие). Чтобы исправить эту ошибку вместо нужного количества обратных слэшей, мы должны вводить вдвое больше.
'\' - '\\'
'\\' - '\\\\'
'\\\' - '\\\\\\'
👍5🤔5
Начало недели списков!

Друзья, давайте проведём неделю списков. Я буду рассказывать про методы, функции и интересные фишки со списками, а в воскресенье я проведу опрос с интересной задачей!

Ну что ж, начинаем?!

Метод insert(Индекс: , Объект: ) - этот метод принимает 2 параметра, он вставляет заданный элемент по заданному индексу в список(не удаляя элемент, который был под этим индексом до этого, а сдвигая его и последующие элементы). Если передать методу несуществующий положительный аргумент, то он разместит элемент в конце списка. А при отрицательном(несуществующем) индексе заполнит элемент в начало списка.

Метод remove(Объект: ) - этот метод принимает 1 параметр, он удаляет первый заданный элемент(именно по заданному элементу, а не по заданному индексу). Если элемент не найден, то метод возвращает ошибку, этого можно избежать с помощью условного оператора с in. Важно, что remove() удаляет только первый элемент, чтобы удалить все элементы, нужно будет использовать его с while и in или с for и count() (про count() я расскажу позже)
👍7🤔4🤓1
Неделя списков! (день #2)

Всем привет! Продолжается наша неделя списков.🐍

Метод clear(Без параметров) - этот метод полностью очищает список(делает его пустым).

pop(Индекс:) - этот метод удаляет элемент по его индексу(именно по индексу), pop() сохраняет удалённый элемент в переменную, к которой он присвоен, то есть просто возвращает удалённый элемент.
👍4🤓4
День #3 нашей недели списков!📃

Метод reverse(Без параметров) - этот метод полностью переворачивает последовательность элементов в списке(инвертирует его🔀), он не создаёт новый список, а преобразует данный.

Метод count(Объект: , Старт: , Конец: ) - этот метод считывает количество заданного элемента в списке. Объект считается равным элементу, если он полностью идентичен элементу.
🎉6🤔2🤩1👌1
Середина нашей недели списков!(день #4)💻

sort(Явно указанные аргументы: ) - этот метод сортирует список. Он принимает необязательные, явно указанные параметры(reverse, key). Изначально он сортирует список по возрастанию, но с параметром reverse=True, он сортирует список по убыванию. sort() может сортировать строки по алфавитному порядку. Самое интересное в этом методе начинается, когда мы задумываемся, как работает сортировка.

Метод sort() использует алгоритм TimSort.
Мет
од TimSort разделяет списки на подсписки, сравнивает подсписки сортировкой вставками, а потом сравнивает подсписки сортировкой слиянием.

Ал
горитм работы сортировки вставками.

Пр
и сортировке вставками, список делится на две части(готовая и неотсортированная часть), в готовой части содержится первый элемент и все последующие, пока какой-то из элементов не будет меньше предыдущего. После того, как нашлась готовая часть, в неотсортированной части каждый элемент(начиная с первого) ищет место в готовой части, чтобы не нарушить последовательность в ней(встать между его меньшим и большим элементом).

На самом деле алгоритмов сортировок достаточно много(есть быстрые и есть медленные).
Вот некоторые из них:
Сортировка пузырьком
Шейкерная сортировка
Сортировка расческой
Сортировка Шелла
Сортировка деревом
Быстрая сортировка
Битонная сортировка
Поразрядная сортировка
Сортировка подсчетом
Блочная сортировка
Пирамидальная сортировка

И это ещё не все...
👍7
5# день недели списков!

Если мы будем обычно выводить список, то он выведется со скобками и запятыми, но как вывести список без этих элементов? Да, можно вывести через цикл for, но вот другой способ!

Распаковка списков

С помощью оператора *, мы можем вывести только элементы списка без дополнительных символов. Мы можем использовать аргументы sep и end вместе с распаковкой. Строки тоже можно распаковывать с помощью этого оператора, так как они похоже хранят символы.
👍7👏2
Предпоследний день недели списков!!!(день #6)

Иногда нужно собирать список из строки или наоборот, собирать строку из элементов списка. Для этого есть методы строк split() и join().

Метод split() разбивает строку на элементы списка. За сигнал разделения он принимает последовательность пробелов(именно последовательность), хотя он может принимать необязательный параметр, который будет разделителем. Если строку с 2+ пробелами между словами разделить на элементы с помощью метода split() с параметром ' ', список будет содержать несколько элементов с пустыми строками, так как одного пробела не будет хватать на весь отступ, а при использовании без параметра список будет содержать только слова строки, так как он принимает за разделитель последовательность пробелов.

Метод join() создаёт строку, состоящую из элементов списка, находящегося в качестве параметра метода, а за разделитель между словами он принимает строку, к которой применяется метод.
👍5😁2
Завершающий день нашей недели списков!(день #7)

Значит пора решать проверочный тест по спискам! Изучите код на картинке и попробуйте ответить на опрос ниже.
👍3👏3
Что выведет код на картинке выше?🤔
Anonymous Quiz
18%
IndexError:
35%
Всё слишком просто
0%
1
6%
0
18%
C#
12%
2
6%
Python
6%
4
0%
-1
0%
Java
🤬5👍3😢2🥴1
Всем привет!👋

Сегодня я достиг отметки в 500 решённых задачек, 50 участий в Clash Of Code и 450 решённых задач на Stepik!!!🥳
👍6🔥6👏1🤡1