Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Для компиляции кода можно использовать любой онлайн компилятор, к примеру www.online-python.com
- # Литералы строк (обозначения):
- s1 = 'str'
- s2 = "str"
- s3 = """str"""
- print(s1, s2, s3) # str str str
- # Знаки ' и " используются только для однострочной записи, но """ можно использовать и для многострочной.
- # Примеры:
- s1 = 'одна строка'
- s2 = "одна строка"
- s3 = """
- Много
- строк
- """
- print(s1) # одна строка
- print(s2) # одна строка
- print(s3)
- #
- # Много
- # строк
- #
- # Почему при выводе s3 в начале и в конце есть перенос строки?
- # Дело в том, что там присутствует знак переноса строки, который записывается как "\n"
- # Строку s3 можно записать в виде однострочной строки:
- s4 = "\nМного\nстрок\n"
- print(s3, s4) # При запуске этого кода мы увидим, что s3 и s4 равны
- # Их равность можно проверить выражением s3 == s4: (== это оператор сравнения, возвращает True или False)
- print(s3 == s4) # True, соответственно s3 полностью идентичен s4
- # Экранирование символов
- # В обычных строках можно экранировать символы, то-есть отключать их "особенные" функции.
- # Если мы хотим внутри строки вывести кавычки, то у нас есть несколько способов решения:
- # 1. Использовать другие кавычки
- print('Мы поехали в лес, или, как у нас говорится, в "заказ".') # Мы поехали в лес, или, как у нас говорится, в "заказ".
- # 2. Использовать экранирование (добавление перед кавычками в тексте символ экранирования, то есть \")
- print("Мы поехали в лес, или, как у нас говорится, в \"заказ\".") # Мы поехали в лес, или, как у нас говорится, в "заказ".
- # Экранированные символы для интерпретатора считаются обычными символами.
- # Символ экранирования не отображается при выводе
- # Но что если мы хотим вывести "бекслеш" (\) в виде обычного символа?
- # Ответ прост, просто тоже его экранируем!
- print("Пример использования бекслеша в строке: \\") # Пример использования бекслеша в строке: \
- # Но что если мы не хотим использовать особые символы и заморачиваться с экранированием?
- # Тогда нам подойдут неформатированные строки, записываются как:
- s1 = r'C:\temp\new'
- s2 = r"C:\temp\new"
- s3 = r"""C:\temp\new"""
- print(s1, s2, s3) # C:\temp\new C:\temp\new C:\temp\new
- # Просто перед строкой ставим букву "r"
- # Но в таком случае символ переноса строки тоже не будет работать
- # Определение длины строки
- # Длина строки определяется функцией len(строка), выводит кол-во символов в строке.
- s1 = "Эта замечательная строка содержит 46 символов!"
- print(len(s1)) # 46
- # Стоит обратить внимание, что индекс последнего символа в строке равняется 45,
- # т. к. отсчёт идёт от нуля.
- print(s1[45]) # !
- # При попытке вывести символ с индексом 46 будет ошибка.
- print(s1[46])
- # Traceback (most recent call last):
- # File "main.py", line 62, in <module>
- # print(s1[46]) #
- # IndexError: string index out of range
- #
- # Из последней строки ошибки мы можем узнать, что:
- # имя ошибки IndexError,
- # описание: string index out of range.
- # что дословно переводится, как: "ошибка индекса" и "строковый индекс вне диапазона"
- # Перевод другого типа в строку
- # осуществляется при помощи функции str(любой_тип)
- # Строки по умолчанию нельзя складывать с другими типами данных,
- # и применять к другим типам данных функции строк тоже нельзя,
- # поэтому мы должны другие типы данных переводить в строки перед работой с ними.
- # Пример:
- s1 = 123 # 123 - тип int (целочисленное число)
- s2 = "4" # "4" - тип str (строка)
- s1 = str(s1) # "123" переводим число в строку
- s3 = s1 + s2 # "123" + "4" = "1234" складываем строки
- print(s3) # 1234
- # Функции строк
- s1 = "В этот лес завороженный,"
- # По пушинкам серебра,
- # Я с винтовкой заряженной
- # На охоту шел вчера.
- # 1. строка.lower()
- # Функция lower переводит все буквы в нижний регистр:
- print(s1.lower()) # в этот лес завороженный,
- # 2. строка.upper()
- # Функция upper переводит все буквы в верхний регистр:
- print(s1.upper()) # В ЭТОТ ЛЕС ЗАВОРОЖЕННЫЙ,
- # 3. строка.capitalize()
- # Функция capitalize переводит первый символ строки в верхний регистр, а все остальные в нижний
- print(s1.capitalize()) # В этот лес завороженный,
- # 4. строка.swapcase()
- # Функция swapcase переводит символы нижнего регистра в верхний, а верхнего – в нижний
- print(s1.swapcase()) # в ЭТОТ ЛЕС ЗАВОРОЖЕННЫЙ,
- # 5. строка.title()
- # функция title первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
- print(s1.title()) # В Этот Лес Завороженный,
- # 6. Добавление символов вокруг строки
- # 6.1 строка.center(ширина, символ_заполнения)
- # Функция center отцентрирует строку, по краям которой стоит символ_заполнения (пробел по умолчанию)
- # Если длина строки меньше ширины, то эффекта не будет
- print(s1.center(30)) # В этот лес завороженный,
- print(s1.center(30, ".")) # ...В этот лес завороженный,...
- # 6.2 строка.ljust(ширина, символ_заполнения)
- # заполняет справа символами заполнения по умолчанию пробелами
- print(s1.ljust(30)) # В этот лес завороженный,
- print(s1.ljust(30, ".")) # В этот лес завороженный,......
- # 6.2 строка.rjust(ширина, символ_заполнения)
- # заполняет слева символами заполнения по умолчанию пробелами
- print(s1.rjust(30)) # В этот лес завороженный,
- print(s1.rjust(30, ".")) # ......В этот лес завороженный,
- # 7. Удаление символов вокруг строк
- # Создадим строки с пробелами вокруг и точками
- s2 = s1.center(30) # В этот лес завороженный,
- s3 = s1.center(30, ".") # ...В этот лес завороженный,...
- # 7.1 строка.strip(символ_заполнения)
- # Удаляет символы заполнения слева и справа
- print(s2.strip()) # В этот лес завороженный,
- print(s3.strip(".")) # В этот лес завороженный,
- # 7.2 строка.lstrip(символ_заполнения)
- # Удаляет символы заполнения слева и справа
- print(s2.lstrip()) # В этот лес завороженный,
- print(s3.lstrip(".")) # В этот лес завороженный,...
- # 7.2 строка.rstrip(символ_заполнения)
- # Удаляет символы заполнения справа
- print(s2.rstrip()) # В этот лес завороженный,
- print(s3.rstrip(".")) # ...В этот лес завороженный,
- # Проверочные задания:
- # 0. Выведите строку: Я люблю питон (пример)
- print("Я люблю питон")
- # 1. Выведите строку: Я люблю "питон"
- # 2. Выведите строку: Я знаю, что " и ' делают одно и то-же
- # 3. Выведите предыдущую строку,
- # но вставьте перенос строки перед словом "делают"
- #*4. Даны переменные name, age, gender, и т.д.:
- name = " морозов владимир алексеевич "
- age = 43
- gender = "мужскоЙ "
- table_col_widht = 11
- table_name = " Тестовая таблица номер 1"
- # 4.1. Перезапишите переменную name,
- # сделав первые буквы каждого слова заглавными
- # и удалив лишние пробелы слева и справа.
- # 4.2. Перезапишите переменную gender,
- # сделав все буквы строчными
- # и удалив лишние пробелы слева и справа.
- # 4.3. Перезапишите переменную table_name,
- # сделав первую букву заглавной, а остальные строчными
- # и удалив лишние пробелы слева и справа.
- # 4.4. Создайте 3 переменных f, i, o: (Заполните их при помощи срезов переменной name)
- # f - для фамилии
- # i - для имени
- # o - для отчества
- # 4.5. Выведите таблицу:
- # ***
- # Фамилия : *** : *** символов
- # Имя : *** : *** символов
- # Отчество : *** : *** символов
- # Возраст : *** :
- # Пол : *** :
- #
- # P.S. Cтолбики должны быть шириной table_col_widht
- # 4.5.1. Над таблицей в центре 3х колонок должно быть название таблицы (table_name)
- # P.S. Предоставьте все вычисления машине, не стоит самому считать ширину
- # 4.5.2. Между столбиками должен быть символ ":"
- # 4.5.3. В первом столбике:
- # Записано название значений (Фамилия, Имя, и т. д.)
- # Центрирование должно быть по левой части
- # 4.5.4. Во втором столбике:
- # Записано значение (f, i, o, age, gender)
- # Центрирование должно быть по центру
- # 4.5.5. В третьем столбике:
- # На строчках 1, 2 и 3 записана длина значений и слово "символов"
- # Центрирование должно быть по правой части
- # 4.6. Изменяйте table_col_widht и смотрите на результат
- # 4.7. После строк с созданием переменных f, i, o напишите:
- f, i, o = name.split(" ")[:3]
- # P.S. Эта строка пока сложна, так что пропустим её описание.
- # 4.8. Поменяйте значения переменных name, age, gender на свои
- # 4.9. Поздравляю, вы сделали динамическую таблицу!
- # Подсказки:
- # 1. Используйте разные литералы строк или экранирование
- # 2. Используйте экранирование или литерал """
- # 3. Используйте экранирование и \n, или используйте литерал """ и многострочную запись
- # 4.1. Используйте функции .strip() и .title()
- # 4.2. Используйте функции .strip() и .lower()
- # 4.3. Используйте функции .strip() и .capitalize()
- # 4.4. О срезах есть отдельный файл, (https://pastebin.com/Bhi5xq7r)
- # так что я просто оставлю тут код
- f = name[:7]
- i = name[8:16]
- o = name[-10:]
- # 4.5.1. Используйте функцию .center(), раcсчитайте ширину исходя из данных:
- # 3 столбца, по table_col_widht шириной,
- # Между столбцами используется 2 разделителя (+2 к общей ширине)
- # 4.5.2. Обычное сложение строк
- # 4.5.3. Используйте функцию .ljust()
- # 4.5.4. Используйте функцию .center()
- # 4.5.5. Используйте функцию .rjust()
- # 4.5. Полный код готовой программы доступен по ссылке:
- # https://pastebin.com/Jvc7U1Sa
Add Comment
Please, Sign In to add comment