Skip to content

Instantly share code, notes, and snippets.

View jigi-33's full-sized avatar
👨‍💻
done!

ilya shaburov jigi-33

👨‍💻
done!
  • ITC of NSSR
  • Novosibirsk, Russia
  • 22:20 (UTC +07:00)
View GitHub Profile
@jigi-33
jigi-33 / Продвинутые_структуры_данных_Python3_тезисы_из_книги_Д_Бейдера.md
Last active May 24, 2020 17:12
Продвинутые структуры данных Python3 - тезисы из книги Д. Бейдера

В каких случаях разумно использование тех или иных продвинутых структур данных Python

(тезисы из книги Дэна Бейдера "Чистый Питон" / "Python Tricks") :

Использование collections.namedtuple (именованных кортежей) является очень эффективным с точки зрения потребляемой оперативной памяти и лаконичной формой для определения неизменяющегося класса вручную.

@jigi-33
jigi-33 / bubble_sorting_algorithm.py
Created May 25, 2020 14:22
Сортировка пузырьком
"""
Common 'Bubble' sorting ALGORITHM
"""
def bubble_sort(alist):
for i in range(len(alist) - 1, 0, -1):
no_swap = True
for j in range(0, i):
if alist[j + 1] < alist[j]:
alist[j], alist[j + 1] = alist[j + 1], alist[j]
@jigi-33
jigi-33 / classes_descriptors.py
Created May 25, 2020 14:24
Классы дескрипторы, отличие дэндр методов __new__ и __init__
"""
КЛАССЫ И МЕТАКЛАССЫ.
МЕТОДЫ __new__ и __init__
"""
# ВОПРОС:
# Для чего используются, какие аргументы получают, что должны возвращать методы __new__, __init__
# __new__ - принимает объект класса, возвращает его экземпляр. Пример:
q = Q.__new__(Q)
@jigi-33
jigi-33 / common_tasks_samples.py
Created May 25, 2020 14:26
Простые задачки по функциональному программированию с использованием условий, циклов. Простое шифрование
"""
Простейшие арифметические операции
==================================
Написать функцию arithmetic, принимающую 3 аргумента:
первые 2 - числа,
третий - операция, которая должна быть произведена над ними.
Если третий аргумент +, сложить их; если —, то вычесть; * — умножить; / — разделить (первое на второе).
В остальных случаях вернуть строку "Неизвестная операция".
"""
def arithmetic(arg1, arg2, op):
@jigi-33
jigi-33 / data_types_and_ecnodings_basics.py
Created May 25, 2020 14:28
Основные типы данных (словари, кортежи, списки). Простое шифрование строк
"""
ЗАДАЧИ ПО ПРОСТЫМ ТИПАМ ДАННЫХ И ЗАПРОСАМ К ОБЪЕКТАМ
====================================================
"""
# Получить список всех аттрибутов объекта
attrs = dir(A)
# Получить список всех публичных аттрибутов объекта
@jigi-33
jigi-33 / functional_skills.py
Created May 25, 2020 14:29
Функциональное программирование ближе к Middle
"""
ЗАДАЧИ ПО ФУНКЦИОНАЛЬНОМУ ПРОГРАММИРОВАНИЮ
"""
# Написать функцию, которая суммирует все, что в нее передают(кортежи, списки, числа)
result = 0
def sum_all(*args):
def sum_iter(args):
@jigi-33
jigi-33 / iterators_generators.py
Created May 25, 2020 14:31
Итераторы-генераторы
"""
ИТЕРАТОРЫ-ГЕНЕРАТОРЫ
"""
# Написать циключескую функцию-генератор
def cycle(iters):
while True:
for it in iters:
yield it
@jigi-33
jigi-33 / misc_questions.py
Created May 25, 2020 14:32
Разные мелкие вопросы о том, как работает Python
"""
РАЗНОЕ (МОДУЛИ)
"""
# Путь к импортированному модулю
import data_types
data_types.__file__
@jigi-33
jigi-33 / strings_sets_sequences.py
Created May 25, 2020 14:34
Множества - нахождения уникальных элементов, разностей в строках, списках и прочих массивах
"""
STRINGS, SETS, SEQUENCES
"""
# Принимаем на вход две строки и выводит на экран все буквы из первой строки, которые отсутствуют во второй строке
s1 = input('Введите первую строку:')
s2 = input('Введите вторую строку:')
answ = list(set(s1) - set(s2))
@jigi-33
jigi-33 / strings_simple.py
Created May 25, 2020 14:36
Строки (strings) - простейшая структура неизменяемого текста(unicode / raw / bytes)
"""
SIMPLE STRINGS
"""
# Разбить строку на символы
# двумя способами:
# 1st
s = 'Hdfs Tutor'
splitted = [char for char in s]