-
Notifications
You must be signed in to change notification settings - Fork 320
Expand file tree
/
Copy path1_strings.py
More file actions
93 lines (74 loc) · 4.61 KB
/
1_strings.py
File metadata and controls
93 lines (74 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# =================================
# Строки
# =================================
# Строка - это неизменяемая последовательность символов
s = 'Hello'
s2 = "world"
print(s, s2)
# Многострочные строки
s3 = '''Lorem ipsum
dolor sit amet'''
print("-"*10) # Операция мультипликация - дублирование строки
print(s3)
print("-"*10) # Добавил для улучшения читабельности вывода
# \n - это один спец. символ - символ переноса строки
s4 = "Lorem ipsum\ndolor sit amet"
print("-"*10)
print(s4)
print("-"*10)
print('s3 == s4 -->', s3 == s4)
s6 = r"Lorem\nipsum\ndolor..." # "сырая" строка, спецсимволы \n не будут конвертироваться в новые строки
print(s6)
# Операции со строками
print() # Пустой принт для добавления пустой строки
print("*******Операции со строками********")
# 1. Строки можно складывать:
print('Hello' + ' ' + 'world')
# 2. Если строки идут друг за другом, + можно опустить (конкатенация строк произойдет автоматически):
print('Hello' ' ' 'world')
# 3. Строки повторять операцией *:
print('Hey! ' * 3)
string = 'произвольная строка'
print('string = ', string)
# 4. Получение символа строки по индексу:
# Все элементы строки нумеруются порядковыми индексами (первый индекс - НОЛЬ):
print('string[1] --> ', string[1])
# 5. Срезы
# Подстроку можно получить при помощи срезов:
print('string[6:11] -->', string[6:11])
# Значения по умолчанию: опущенный первый индекс заменяется нулём,
# опущенный второй индекс подменяется размером срезаемой строки.
print('string[6:] -->', string[6:])
print('string[:11] -->', string[:11])
# s6[3] = 'g' # такая конструкция вызовет ошибку, так как строки — неизменяемый объект
# Слишком большой индекс заменяется на размер строки:
print(string[6:100])
# Верхняя граница меньшая нижней возвращает пустую строку:
print('string[50:] -->', string[50:])
print('string[6:1] --> ', string[6:1])
# Индексы могут быть отрицательными числами, обозначая при этом отсчет справа налево:
print('string[-1] -->', string[-1]) # Последний символ
print('string[-2] -->', string[-2]) # Предпоследний символ
print('string[-2:] -->', string[-2:]) # Последние два символа
print('string[:-2] -->', string[:-2]) # Всё, кроме последних двух символов
# Хороший способ понять, как работают срезы - думать о них, как об указателях на места между символами:
# +---+---+---+---+---+
# | L | o | r | e | m |
# +---+---+---+---+---+
# 0 1 2 3 4 5
# -5 -4 -3 -2 -1
# 6. Срезы с шагом
print('string[:12:2] -->', string[:12:2]) # Получаем каждый второй символ для указанного среза
print('string[::-1] -->', string[::-1]) # Переворачиваем строку задом наперед
# 7. Длина строки:
print(len(s))
# 8. Методы строк
print()
print('****Методы строк******')
# Пока воспринимайте метод как функцию, принимающую значение перед точкой в качестве первого аргумента
# 'hello'.upper() воспринимайте как upper('hello')
# Методы строк всегда возвращают новую строку, не изменяя исходную, т.к. строка неизменяемая
print("'иван'.title() -->", 'иван'.title())
print("'python'.upper() -->", 'python'.upper())
print("'трололошка'.find('ло') -->", 'трололошка'.find('ло', 4)) # индекс искомой подстроки (первое вхождение)
# + Подробнее о методах читайте в справочнике по python