Подсчет популярности слов в тексте

  • сортировка через list.sort() — по умолчанию так, если нужна обратная сортировка, то list.sort(reverse=True), если по какому-то ключу, то list.sort(key=[ключ]). Если нужно, чтобы функция возвращала значение, то используем sorted вместо sort;
  • функция chardet для автоматического определения кодировки и перевода в UTF-8.

Аналог с JSON с доработками предыдущего кода (сортировка словаря по значениям через лямбда-функцию):

Классы: свойства

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

Свойства могут называться как угодно, но принято для понимания кода называть их по имени переменной, но только с большой буквы: name => Name.

Также есть автоматически реализуемые свойства (краткая запись, если нет необходимости реализовать логику в set).

public string Name { get; set; }

Классы: конструктор

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

Конструктор имеет такое же имя, что и класс, является публичным и не имеет никакого возвращаемого типа.

При создании объекта класса, реализованного выше Person p = new Person(), будет выведено сообщение «Привет!».

ООП: инкапсуляция

Инкапсуляция — это управление окружением объекта, возможность дать доступ или ограничить его. Реализуется через модификаторы доступа private, public, protected, internal, protected internal.

Методы: перегрузка

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

Перегрузка работает только при разных типах аргументов. Следующий код выведет ошибку:

Методы: передача аргумента по ссылке

В C# по умолчанию в методы аргументы передаются по значению (т.е. информация из вне копируется внутрь метода). Если есть необходимость передать аргумент по ссылке, чтобы после применения метода значение передаваемого аргумента менялось не только внутри метода, но и за его пределами, есть специальное слово ref. В коде это выглядит так:

Установка модулей через cmd

При команде «pip install chardet» командная строка выдавала ошибку с отказом в доступе. Решение оказалось простым — запускать cmd как администратор.

Находим cmd, кликаем правой кнопкой мыши, выбираем «Запустить от имени администратора».

Динамическая типизация в C#

Если заранее неизвестно к какому типу будет принадлежать переменная, в C# есть выход — ключевое слово var.

SQL-инъекции: подстановка кода вместо пароля

Логин: skroob
Пароль: 12345′ OR ‘1’ = 1

Если исходный код SQL-таблицы  такой, то будут проблемы:

Правильный код:

Краткий условный оператор

В C# наряду с обычным условным оператором if есть краткий условный оператор. Выглядит так: