Начало недели списков!
Друзья, давайте проведём неделю списков. Я буду рассказывать про методы, функции и интересные фишки со списками, а в воскресенье я проведу опрос с интересной задачей!
Ну что ж, начинаем?!
Метод insert(Индекс: , Объект: ) - этот метод принимает 2 параметра, он вставляет заданный элемент по заданному индексу в список(не удаляя элемент, который был под этим индексом до этого, а сдвигая его и последующие элементы). Если передать методу несуществующий положительный аргумент, то он разместит элемент в конце списка. А при отрицательном(несуществующем) индексе заполнит элемент в начало списка.
Метод remove(Объект: ) - этот метод принимает 1 параметр, он удаляет первый заданный элемент(именно по заданному элементу, а не по заданному индексу). Если элемент не найден, то метод возвращает ошибку, этого можно избежать с помощью условного оператора с in. Важно, что remove() удаляет только первый элемент, чтобы удалить все элементы, нужно будет использовать его с while и in или с for и count() (про count() я расскажу позже)
Друзья, давайте проведём неделю списков. Я буду рассказывать про методы, функции и интересные фишки со списками, а в воскресенье я проведу опрос с интересной задачей!
Ну что ж, начинаем?!
Метод insert(Индекс: , Объект: ) - этот метод принимает 2 параметра, он вставляет заданный элемент по заданному индексу в список(не удаляя элемент, который был под этим индексом до этого, а сдвигая его и последующие элементы). Если передать методу несуществующий положительный аргумент, то он разместит элемент в конце списка. А при отрицательном(несуществующем) индексе заполнит элемент в начало списка.
Метод remove(Объект: ) - этот метод принимает 1 параметр, он удаляет первый заданный элемент(именно по заданному элементу, а не по заданному индексу). Если элемент не найден, то метод возвращает ошибку, этого можно избежать с помощью условного оператора с in. Важно, что remove() удаляет только первый элемент, чтобы удалить все элементы, нужно будет использовать его с while и in или с for и count() (про count() я расскажу позже)
👍7🤔4🤓1
Неделя списков! (день #2)
Всем привет! Продолжается наша неделя списков.🐍
Метод clear(Без параметров) - этот метод полностью очищает список(делает его пустым).
pop(Индекс:) - этот метод удаляет элемент по его индексу(именно по индексу), pop() сохраняет удалённый элемент в переменную, к которой он присвоен, то есть просто возвращает удалённый элемент.
Всем привет! Продолжается наша неделя списков.🐍
Метод clear(Без параметров) - этот метод полностью очищает список(делает его пустым).
pop(Индекс:) - этот метод удаляет элемент по его индексу(именно по индексу), pop() сохраняет удалённый элемент в переменную, к которой он присвоен, то есть просто возвращает удалённый элемент.
👍4🤓4
День #3 нашей недели списков!📃
Метод reverse(Без параметров) - этот метод полностью переворачивает последовательность элементов в списке(инвертирует его🔀), он не создаёт новый список, а преобразует данный.
Метод count(Объект: , Старт: , Конец: ) - этот метод считывает количество заданного элемента в списке. Объект считается равным элементу, если он полностью идентичен элементу.
Метод reverse(Без параметров) - этот метод полностью переворачивает последовательность элементов в списке(инвертирует его🔀), он не создаёт новый список, а преобразует данный.
Метод count(Объект: , Старт: , Конец: ) - этот метод считывает количество заданного элемента в списке. Объект считается равным элементу, если он полностью идентичен элементу.
🎉6🤔2🤩1👌1
Середина нашей недели списков!(день #4)💻
sort(Явно указанные аргументы: ) - этот метод сортирует список. Он принимает необязательные, явно указанные параметры(reverse, key). Изначально он сортирует список по возрастанию, но с параметром reverse=True, он сортирует список по убыванию. sort() может сортировать строки по алфавитному порядку. Самое интересное в этом методе начинается, когда мы задумываемся, как работает сортировка.
Метод sort() использует алгоритм TimSort.
Метод TimSort разделяет списки на подсписки, сравнивает подсписки сортировкой вставками, а потом сравнивает подсписки сортировкой слиянием.
Алгоритм работы сортировки вставками.
При сортировке вставками, список делится на две части(готовая и неотсортированная часть), в готовой части содержится первый элемент и все последующие, пока какой-то из элементов не будет меньше предыдущего. После того, как нашлась готовая часть, в неотсортированной части каждый элемент(начиная с первого) ищет место в готовой части, чтобы не нарушить последовательность в ней(встать между его меньшим и большим элементом).
На самом деле алгоритмов сортировок достаточно много(есть быстрые и есть медленные).
Вот некоторые из них:
Сортировка пузырьком
Шейкерная сортировка
Сортировка расческой
Сортировка Шелла
Сортировка деревом
Быстрая сортировка
Битонная сортировка
Поразрядная сортировка
Сортировка подсчетом
Блочная сортировка
Пирамидальная сортировка
И это ещё не все...
sort(Явно указанные аргументы: ) - этот метод сортирует список. Он принимает необязательные, явно указанные параметры(reverse, key). Изначально он сортирует список по возрастанию, но с параметром reverse=True, он сортирует список по убыванию. sort() может сортировать строки по алфавитному порядку. Самое интересное в этом методе начинается, когда мы задумываемся, как работает сортировка.
Метод sort() использует алгоритм TimSort.
Метод TimSort разделяет списки на подсписки, сравнивает подсписки сортировкой вставками, а потом сравнивает подсписки сортировкой слиянием.
Алгоритм работы сортировки вставками.
При сортировке вставками, список делится на две части(готовая и неотсортированная часть), в готовой части содержится первый элемент и все последующие, пока какой-то из элементов не будет меньше предыдущего. После того, как нашлась готовая часть, в неотсортированной части каждый элемент(начиная с первого) ищет место в готовой части, чтобы не нарушить последовательность в ней(встать между его меньшим и большим элементом).
На самом деле алгоритмов сортировок достаточно много(есть быстрые и есть медленные).
Вот некоторые из них:
Сортировка пузырьком
Шейкерная сортировка
Сортировка расческой
Сортировка Шелла
Сортировка деревом
Быстрая сортировка
Битонная сортировка
Поразрядная сортировка
Сортировка подсчетом
Блочная сортировка
Пирамидальная сортировка
И это ещё не все...
👍7
5# день недели списков!
Если мы будем обычно выводить список, то он выведется со скобками и запятыми, но как вывести список без этих элементов? Да, можно вывести через цикл for, но вот другой способ!
Распаковка списков
С помощью оператора *, мы можем вывести только элементы списка без дополнительных символов. Мы можем использовать аргументы sep и end вместе с распаковкой. Строки тоже можно распаковывать с помощью этого оператора, так как они похоже хранят символы.
Если мы будем обычно выводить список, то он выведется со скобками и запятыми, но как вывести список без этих элементов? Да, можно вывести через цикл for, но вот другой способ!
Распаковка списков
С помощью оператора *, мы можем вывести только элементы списка без дополнительных символов. Мы можем использовать аргументы sep и end вместе с распаковкой. Строки тоже можно распаковывать с помощью этого оператора, так как они похоже хранят символы.
👍7👏2
Предпоследний день недели списков!!!(день #6)
Иногда нужно собирать список из строки или наоборот, собирать строку из элементов списка. Для этого есть методы строк split() и join().
Метод split() разбивает строку на элементы списка. За сигнал разделения он принимает последовательность пробелов(именно последовательность), хотя он может принимать необязательный параметр, который будет разделителем. Если строку с 2+ пробелами между словами разделить на элементы с помощью метода split() с параметром ' ', список будет содержать несколько элементов с пустыми строками, так как одного пробела не будет хватать на весь отступ, а при использовании без параметра список будет содержать только слова строки, так как он принимает за разделитель последовательность пробелов.
Метод join() создаёт строку, состоящую из элементов списка, находящегося в качестве параметра метода, а за разделитель между словами он принимает строку, к которой применяется метод.
Иногда нужно собирать список из строки или наоборот, собирать строку из элементов списка. Для этого есть методы строк split() и join().
Метод split() разбивает строку на элементы списка. За сигнал разделения он принимает последовательность пробелов(именно последовательность), хотя он может принимать необязательный параметр, который будет разделителем. Если строку с 2+ пробелами между словами разделить на элементы с помощью метода split() с параметром ' ', список будет содержать несколько элементов с пустыми строками, так как одного пробела не будет хватать на весь отступ, а при использовании без параметра список будет содержать только слова строки, так как он принимает за разделитель последовательность пробелов.
Метод join() создаёт строку, состоящую из элементов списка, находящегося в качестве параметра метода, а за разделитель между словами он принимает строку, к которой применяется метод.
👍5😁2
Что выведет код на картинке выше?🤔
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!!!🥳
Сегодня я достиг отметки в 500 решённых задачек, 50 участий в Clash Of Code и 450 решённых задач на Stepik!!!🥳
👍6🔥6👏1🤡1
Термины при изучении пользовательских функций
Функция - фрагмент кода для решения задач.
Встроенные функции - функции, созданные сразу, заранее(int(), str()...).
Пользовательские функции - функции, которые создаются вручную для решения различных задач(через def)).
Объявление функции - создание функции.
Вызов функции - Использование функции после её объявления.
Параметры - это переменные, которые подаются функции во время её объявление.
Аргументы - любые типы данных, которые подаются функции во время её вызова.
Параметрические переменные - параметры.
Формальные параметры - аргументы.
Фактические параметры - параметры.
Локальные переменные - переменные, созданные в теле функции с областью видимости только в функции, в которой переменная объявлена. Параметрическая переменная - локальная переменная.
Глобальные переменные -переменные, объявленные вне функции с областью видимости всей программы. Говорят, что лучше не использовать глобальные переменные.
Функция - фрагмент кода для решения задач.
Встроенные функции - функции, созданные сразу, заранее(int(), str()...).
Пользовательские функции - функции, которые создаются вручную для решения различных задач(через def)).
Объявление функции - создание функции.
Вызов функции - Использование функции после её объявления.
Параметры - это переменные, которые подаются функции во время её объявление.
Аргументы - любые типы данных, которые подаются функции во время её вызова.
Параметрические переменные - параметры.
Формальные параметры - аргументы.
Фактические параметры - параметры.
Локальные переменные - переменные, созданные в теле функции с областью видимости только в функции, в которой переменная объявлена. Параметрическая переменная - локальная переменная.
Глобальные переменные -переменные, объявленные вне функции с областью видимости всей программы. Говорят, что лучше не использовать глобальные переменные.
👍8
Всем привет! Попробуйте проанализировать код и ответить на опрос ниже. Таблицу ASCII прикрепил.
🤔4👍2😱2
Что выведет программа с кодом выше?🤔⬆️
Anonymous Quiz
10%
False
0%
2
10%
P
0%
y
10%
True
0%
121
15%
3
15%
...Error:...
0%
40
40%
Пустой вывод
👍3🕊2🤨2
Всем привет!❄️ Поздравляю вас с Новым годом!
Желаю побыстрее приобрести всего, чего не хватало в прошлом году! Заниматься любимым делом, здоровья и счастья! Новый год - это лучшее время для начинания чего-то нового и интересного, если начать заниматься чем-то, до чего никак не доходили руки, но очень хотелось, то пора начинать и на следующий год будет большой результат не будет чувства сожаления!
Желаю побыстрее приобрести всего, чего не хватало в прошлом году! Заниматься любимым делом, здоровья и счастья! Новый год - это лучшее время для начинания чего-то нового и интересного, если начать заниматься чем-то, до чего никак не доходили руки, но очень хотелось, то пора начинать и на следующий год будет большой результат не будет чувства сожаления!
👏8🎄2☃1👍1🔥1
Какое число я загадал?
Сколько вопросов с ответом 'больше' или 'меньше' нужно задать, чтобы гарантированно ответить правильно?
Например, возьмём числа от 1 до 200, для ответа нужно найти двоичный логарифм максимального числа в диапазоне, у нас максимальное число - 200. Двоичный логарифм 200 - 8
Простое объяснение
Двоичный логарифм числа - это степень, в которую нужно умножить 2, чтобы получить первое число большее или равное большему в диапазоне.
Как это работает?
Пусть, собеседник загадал число 154, 200 делим на 2, получаем 100, собеседник отвечает 'больше', значит число в диапазоне от 100 до 200(всего 100 чисел), 100 делим на 2, будет 50, 100 + 50 = 150, собеседник отвечает 'больше', значит число находится в диапазоне от 150 до 200(всего 50 чисел), 50 разделить на 2 = 25, 150 + 25 = 175, человек говорит 'меньше', это означает, что число в диапазоне от 150 до 175(всего 25 чисел), 25 делим на 2 = 12(округляя в меньшую сторону), 150 + 12 = 162, человек говорит меньше, значит число в диапазоне от 150 до 162, 12 / 2 = 6, от 150 до 156 6 чисел, слышим 'меньше', 6 / 2 = 3, после числа 153, слышим 'больше', значит загадано 154 или 155, 3/2 = 1(округляя в меньшую сторону), 153 + 1 = 154, 154 оказывается загаданным числом.
Сколько вопросов с ответом 'больше' или 'меньше' нужно задать, чтобы гарантированно ответить правильно?
Например, возьмём числа от 1 до 200, для ответа нужно найти двоичный логарифм максимального числа в диапазоне, у нас максимальное число - 200. Двоичный логарифм 200 - 8
Простое объяснение
Двоичный логарифм числа - это степень, в которую нужно умножить 2, чтобы получить первое число большее или равное большему в диапазоне.
Как это работает?
Пусть, собеседник загадал число 154, 200 делим на 2, получаем 100, собеседник отвечает 'больше', значит число в диапазоне от 100 до 200(всего 100 чисел), 100 делим на 2, будет 50, 100 + 50 = 150, собеседник отвечает 'больше', значит число находится в диапазоне от 150 до 200(всего 50 чисел), 50 разделить на 2 = 25, 150 + 25 = 175, человек говорит 'меньше', это означает, что число в диапазоне от 150 до 175(всего 25 чисел), 25 делим на 2 = 12(округляя в меньшую сторону), 150 + 12 = 162, человек говорит меньше, значит число в диапазоне от 150 до 162, 12 / 2 = 6, от 150 до 156 6 чисел, слышим 'меньше', 6 / 2 = 3, после числа 153, слышим 'больше', значит загадано 154 или 155, 3/2 = 1(округляя в меньшую сторону), 153 + 1 = 154, 154 оказывается загаданным числом.
👍8❤2🤔2
hangman.py
23.1 KB
Всем привет!
Хочу поделиться своим новым проектом, Hangnam(490 строк), выбор языка, выбор сложностей, изображение состояния, 300+ слов на рус и англ в словарях для угадывания, много бонусов и не меньше всего интересного.
Хочу поделиться своим новым проектом, Hangnam(490 строк), выбор языка, выбор сложностей, изображение состояния, 300+ слов на рус и англ в словарях для угадывания, много бонусов и не меньше всего интересного.
👍8👏2🤓1
Про return в функциях
Функции могут возвращать различные значения с помощью return(строки, числа, списки, True, False), причём при возвращении первого значения функция прекращает свою работу, но как вернуть несколько значений. Можно использовать return, который возвращает несколько значений(Пример: return 1, 2, 3, 4), можно возвращать сколько угодно значений, но для каждое возвращаемое значение должно где-то храниться(Пример: num1, num2, num3 = get_numbers().
Функции могут возвращать различные значения с помощью return(строки, числа, списки, True, False), причём при возвращении первого значения функция прекращает свою работу, но как вернуть несколько значений. Можно использовать return, который возвращает несколько значений(Пример: return 1, 2, 3, 4), можно возвращать сколько угодно значений, но для каждое возвращаемое значение должно где-то храниться(Пример: num1, num2, num3 = get_numbers().
👍6🤔3👏2