ToxaLay

Строки и их функции

Jun 28th, 2022 (edited)
1,007
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 14.25 KB | None
  1. # Для компиляции кода можно использовать любой онлайн компилятор, к примеру www.online-python.com
  2.  
  3. # Литералы строк (обозначения):
  4. s1 = 'str'
  5. s2 = "str"
  6. s3 = """str"""
  7. print(s1, s2, s3) # str str str
  8. # Знаки ' и " используются только для однострочной записи, но """ можно использовать и для многострочной.
  9. # Примеры:
  10. s1 = 'одна строка'
  11. s2 = "одна строка"
  12. s3 = """
  13. Много
  14. строк
  15. """
  16. print(s1) # одна строка
  17. print(s2) # одна строка
  18. print(s3)
  19. #
  20. # Много
  21. # строк
  22. #
  23.  
  24. # Почему при выводе s3 в начале и в конце есть перенос строки?
  25. # Дело в том, что там присутствует знак переноса строки, который записывается как "\n"
  26. # Строку s3 можно записать в виде однострочной строки:
  27. s4 = "\nМного\nстрок\n"
  28. print(s3, s4) # При запуске этого кода мы увидим, что s3 и s4 равны
  29. # Их равность можно проверить выражением s3 == s4: (== это оператор сравнения, возвращает True или False)
  30. print(s3 == s4) # True, соответственно s3 полностью идентичен s4
  31.  
  32. # Экранирование символов
  33. # В обычных строках можно экранировать символы, то-есть отключать их "особенные" функции.
  34. # Если мы хотим внутри строки вывести кавычки, то у нас есть несколько способов решения:
  35. # 1. Использовать другие кавычки
  36. print('Мы поехали в лес, или, как у нас говорится, в "заказ".') # Мы поехали в лес, или, как у нас говорится, в "заказ".
  37. # 2. Использовать экранирование (добавление перед кавычками в тексте символ экранирования, то есть \")
  38. print("Мы поехали в лес, или, как у нас говорится, в \"заказ\".") # Мы поехали в лес, или, как у нас говорится, в "заказ".
  39. # Экранированные символы для интерпретатора считаются обычными символами.
  40. # Символ экранирования не отображается при выводе
  41. # Но что если мы хотим вывести "бекслеш" (\) в виде обычного символа?
  42. # Ответ прост, просто тоже его экранируем!
  43. print("Пример использования бекслеша в строке: \\") # Пример использования бекслеша в строке: \
  44.  
  45. # Но что если мы не хотим использовать особые символы и заморачиваться с экранированием?
  46. # Тогда нам подойдут неформатированные строки, записываются как:
  47. s1 = r'C:\temp\new'
  48. s2 = r"C:\temp\new"
  49. s3 = r"""C:\temp\new"""
  50. print(s1, s2, s3) # C:\temp\new C:\temp\new C:\temp\new
  51. # Просто перед строкой ставим букву "r"
  52. # Но в таком случае символ переноса строки тоже не будет работать
  53.  
  54. # Определение длины строки
  55. # Длина строки определяется функцией len(строка), выводит кол-во символов в строке.
  56. s1 = "Эта замечательная строка содержит 46 символов!"
  57. print(len(s1)) # 46
  58. # Стоит обратить внимание, что индекс последнего символа в строке равняется 45,
  59. # т. к. отсчёт идёт от нуля.
  60. print(s1[45]) # !
  61. # При попытке вывести символ с индексом 46 будет ошибка.
  62. print(s1[46])
  63. # Traceback (most recent call last):
  64. #   File "main.py", line 62, in <module>
  65. #     print(s1[46]) #
  66. # IndexError: string index out of range
  67. #
  68. # Из последней строки ошибки мы можем узнать, что:
  69. # имя ошибки IndexError,
  70. # описание: string index out of range.
  71. # что дословно переводится, как: "ошибка индекса" и "строковый индекс вне диапазона"
  72.  
  73. # Перевод другого типа в строку
  74. # осуществляется при помощи функции str(любой_тип)
  75. # Строки по умолчанию нельзя складывать с другими типами данных,
  76. # и применять к другим типам данных функции строк тоже нельзя,
  77. # поэтому мы должны другие типы данных переводить в строки перед работой с ними.
  78. # Пример:
  79. s1 = 123      # 123 - тип int (целочисленное число)
  80. s2 = "4"      # "4" - тип str (строка)
  81. s1 = str(s1)  # "123" переводим число в строку
  82. s3 = s1 + s2  # "123" + "4" = "1234" складываем строки
  83. print(s3)     # 1234
  84.  
  85. # Функции строк
  86. s1 = "В этот лес завороженный,"
  87. #     По пушинкам серебра,
  88. #     Я с винтовкой заряженной
  89. #     На охоту шел вчера.
  90.  
  91. # 1. строка.lower()
  92. # Функция lower переводит все буквы в нижний регистр:
  93. print(s1.lower())       # в этот лес завороженный,
  94.  
  95. # 2. строка.upper()
  96. # Функция upper переводит все буквы в верхний регистр:
  97. print(s1.upper())       # В ЭТОТ ЛЕС ЗАВОРОЖЕННЫЙ,
  98.  
  99. # 3. строка.capitalize()
  100. # Функция capitalize переводит первый символ строки в верхний регистр, а все остальные в нижний
  101. print(s1.capitalize())  # В этот лес завороженный,
  102.  
  103. # 4. строка.swapcase()
  104. # Функция swapcase переводит символы нижнего регистра в верхний, а верхнего – в нижний
  105. print(s1.swapcase())    # в ЭТОТ ЛЕС ЗАВОРОЖЕННЫЙ,
  106.  
  107. # 5. строка.title()
  108. # функция title первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
  109. print(s1.title())       # В Этот Лес Завороженный,
  110.  
  111. # 6. Добавление символов вокруг строки
  112. # 6.1 строка.center(ширина, символ_заполнения)
  113. # Функция center отцентрирует строку, по краям которой стоит символ_заполнения (пробел по умолчанию)
  114. # Если длина строки меньше ширины, то эффекта не будет
  115. print(s1.center(30))      #    В этот лес завороженный,  
  116. print(s1.center(30, ".")) # ...В этот лес завороженный,...
  117. # 6.2 строка.ljust(ширина, символ_заполнения)
  118. # заполняет справа символами заполнения по умолчанию пробелами
  119. print(s1.ljust(30))       # В этот лес завороженный,      
  120. print(s1.ljust(30, "."))  # В этот лес завороженный,......
  121. # 6.2 строка.rjust(ширина, символ_заполнения)
  122. # заполняет слева символами заполнения по умолчанию пробелами
  123. print(s1.rjust(30))       #       В этот лес завороженный,
  124. print(s1.rjust(30, "."))  # ......В этот лес завороженный,
  125.  
  126. # 7. Удаление символов вокруг строк
  127. # Создадим строки с пробелами вокруг и точками
  128. s2 = s1.center(30)      #    В этот лес завороженный,  
  129. s3 = s1.center(30, ".") # ...В этот лес завороженный,...
  130. # 7.1 строка.strip(символ_заполнения)
  131. # Удаляет символы заполнения слева и справа
  132. print(s2.strip())       # В этот лес завороженный,
  133. print(s3.strip("."))    # В этот лес завороженный,
  134. # 7.2 строка.lstrip(символ_заполнения)
  135. # Удаляет символы заполнения слева и справа
  136. print(s2.lstrip())      # В этот лес завороженный,  
  137. print(s3.lstrip("."))   # В этот лес завороженный,...
  138. # 7.2 строка.rstrip(символ_заполнения)
  139. # Удаляет символы заполнения справа
  140. print(s2.rstrip())      #    В этот лес завороженный,
  141. print(s3.rstrip("."))   # ...В этот лес завороженный,
  142.  
  143. # Проверочные задания:
  144. # 0. Выведите строку: Я люблю питон (пример)
  145. print("Я люблю питон")
  146.  
  147. # 1. Выведите строку: Я люблю "питон"
  148.  
  149. # 2. Выведите строку: Я знаю, что " и ' делают одно и то-же
  150.  
  151. # 3. Выведите предыдущую строку,
  152. #    но вставьте перенос строки перед словом "делают"
  153.  
  154. #*4. Даны переменные name, age, gender, и т.д.:
  155. name =   " морозов владимир алексеевич   "
  156. age =    43
  157. gender = "мужскоЙ "
  158. table_col_widht = 11
  159. table_name  = " Тестовая таблица номер 1"
  160. # 4.1. Перезапишите переменную name,
  161. #      сделав первые буквы каждого слова заглавными
  162. #      и удалив лишние пробелы слева и справа.
  163. # 4.2. Перезапишите переменную gender,
  164. #      сделав все буквы строчными
  165. #      и удалив лишние пробелы слева и справа.
  166. # 4.3. Перезапишите переменную table_name,
  167. #      сделав первую букву заглавной, а остальные строчными
  168. #      и удалив лишние пробелы слева и справа.
  169. # 4.4. Создайте 3 переменных f, i, o: (Заполните их при помощи срезов переменной name)
  170. #        f - для фамилии
  171. #        i - для имени
  172. #        o - для отчества
  173. # 4.5. Выведите таблицу:
  174. #                   ***
  175. #        Фамилия  : *** : *** символов
  176. #        Имя      : *** : *** символов
  177. #        Отчество : *** : *** символов
  178. #        Возраст  : *** :
  179. #        Пол      : *** :
  180. #
  181. #      P.S. Cтолбики должны быть шириной table_col_widht
  182. # 4.5.1. Над таблицей в центре 3х колонок должно быть название таблицы (table_name)
  183. #        P.S. Предоставьте все вычисления машине, не стоит самому считать ширину
  184. # 4.5.2. Между столбиками должен быть символ ":"
  185. # 4.5.3. В первом столбике:
  186. #          Записано название значений (Фамилия, Имя, и т. д.)
  187. #          Центрирование должно быть по левой части
  188. # 4.5.4. Во втором столбике:
  189. #          Записано значение (f, i, o, age, gender)
  190. #          Центрирование должно быть по центру
  191. # 4.5.5. В третьем столбике:
  192. #          На строчках 1, 2 и 3 записана длина значений и слово "символов"
  193. #          Центрирование должно быть по правой части
  194. # 4.6. Изменяйте table_col_widht и смотрите на результат
  195. # 4.7. После строк с созданием переменных f, i, o напишите:
  196. f, i, o = name.split(" ")[:3]
  197. #      P.S. Эта строка пока сложна, так что пропустим её описание.
  198. # 4.8. Поменяйте значения переменных name, age, gender на свои
  199. # 4.9. Поздравляю, вы сделали динамическую таблицу!
  200.  
  201.  
  202.  
  203.  
  204. # Подсказки:
  205. # 1. Используйте разные литералы строк или экранирование
  206. # 2. Используйте экранирование или литерал """
  207. # 3. Используйте экранирование и \n, или используйте литерал """ и многострочную запись
  208. # 4.1. Используйте функции .strip() и .title()
  209. # 4.2. Используйте функции .strip() и .lower()
  210. # 4.3. Используйте функции .strip() и .capitalize()
  211. # 4.4. О срезах есть отдельный файл, (https://pastebin.com/Bhi5xq7r)
  212. #      так что я просто оставлю тут код
  213. f = name[:7]
  214. i = name[8:16]
  215. o = name[-10:]
  216. # 4.5.1. Используйте функцию .center(), раcсчитайте ширину исходя из данных:
  217. #          3 столбца, по table_col_widht шириной,
  218. #          Между столбцами используется 2 разделителя (+2 к общей ширине)
  219. # 4.5.2. Обычное сложение строк
  220. # 4.5.3. Используйте функцию .ljust()
  221. # 4.5.4. Используйте функцию .center()
  222. # 4.5.5. Используйте функцию .rjust()
  223. # 4.5. Полный код готовой программы доступен по ссылке:
  224. #      https://pastebin.com/Jvc7U1Sa
RAW Paste Data Copied