From e5abc1fe99340b979b18864d978179f71fe8f5c5 Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 20:33:26 +0300 Subject: First --- PYTHON/STRING.md | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 PYTHON/STRING.md (limited to 'PYTHON/STRING.md') diff --git a/PYTHON/STRING.md b/PYTHON/STRING.md new file mode 100644 index 0000000..6e7d4f9 --- /dev/null +++ b/PYTHON/STRING.md @@ -0,0 +1,121 @@ +```python +my_str = 'Vlapa' +print(len(my_str)) +# 5 + +print(my_str[0]) +# V + +print(my_str[2:5]) +# apa + + +my_str.upper() +my_str.replace('__old', '__new') # само значение не изменяется ! +my_str.count('__x') # считает кол-во вхождений + + +``` +![[Снимок экрана 2025-02-11 в 01.15.10.png]] + +Создать 1000 папок со случайными именами: +![[Снимок экрана 2025-02-11 в 01.17.25.png]] + + +**Работа с регистрами** + +![[telegram-cloud-photo-size-4-5863854399405801203-w.jpg]] + +_Строки в Python имеют свойство регистра — прописные и строчные буквы считаются разными символами._ + +Для преобразования регистра используются методы строк: +str.upper() — преобразует строку к верхнему регистру. +str.lower() — преобразует строку к нижнему регистру. +str.swapcase() — меняет регистр каждого символа на противоположный. +str.capitalize() — делает первую букву заглавной, остальные строчными. + +Регистр конкретного символа можно проверить в строке методами: +str.isupper() — проверка на заглавный регистр. +str.islower() — проверка на строчный регистр. + +Регистр важно учитывать при сравнении строк на равенство. + + +### Полезные строковые методы + +1️⃣ .upper() **– переводит строку в ВЕРХНИЙ РЕГИСТР** +text = "hello world" +print(text.upper())  # "HELLO WORLD" + +2️⃣ .lower() **– переводит строку в нижний регистр** +text = "HELLO WORLD" +print(text.lower())  # "hello world" + +3️⃣ .strip() **– удаляет пробелы и символы переноса с начала и конца строки** +text = "  hello world  " +print(text.strip())  # "hello world" + +Можно указать символы, которые нужно удалить: +text = "##hello##" +print(text.strip("#"))  # "hello" + +4️⃣ .replace(old, new) **– заменяет подстроку в строке** +text = "Hello, world!" +print(text.replace("world", "Python"))  # "Hello, Python!" + +5️⃣ .split(separator) **– разделяет строку по разделителю и возвращает список** +text = "apple,banana,orange" +print(text.split(","))  # ['apple', 'banana', 'orange'] + +Если разделитель не указан, удаляются пробелы: +text = "Hello   world" +print(text.split())  # ['Hello', 'world'] + +Эти методы часто используются вместе, например: +text = "  hello, world!  " +clean_text = text.strip().replace(",", "").upper() +print(clean_text)  # "HELLO WORLD" + + +### f-строки с выражениями в форматировании + +Да, ты можешь использовать **выражения прямо внутри f-строк**! +```python +value = 3.14159 +print(f"Округлено: {value:.2f}")      # Округлит до 2 знаков +print(f"В квадрате: {value**2:.1f}")  # Сразу вычисляет и форматирует +``` + +🧠 **А можно и условие:** +```python +name = None +print(f"Привет, {name or 'гость'}!") +``` + +🗣 **При генерации отчётов, логов, CLI-вывода, шаблонов — везде, где важна читаемость и компактность.** + + + +PEP 750 вводят t-строки — это как f"..." но: +- интерполяция ограничена и контролируема; +- поддерживается строгое соответствие шаблону; +- можно передавать переменные явно, предотвращая **SQL-инъекции** и XSS. + +Для чего? Для того, чтобы писать shell-команды, SQL, HTML и т.д. без риска инъекций и без ручного экранирования + +**Пример**: + +```PYTHON +from string.templatelib import Template + +name = "World" +template: Template = t"Hello, {name}!" + +safe_output = html(template) +``` + +Здесь html() — это функция, которая принимает объект Template и возвращает безопасную строку, экранируя потенциально опасные вставки + +PEP 787 предлагает добавить это прямо в subprocess и shlex (но пока в статусе "отложен") + +Следим за развитием 😊 \ No newline at end of file -- cgit v1.2.3