#Многострочные строки можно задавать в виде значения объекта с использованием тройных кавы-чек, например,
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
```
Можно обращаться к частям строки символов с использованием индексов символов по их поряд-ку в строке. При этом надо учитывать, что нумерация символов начинается с 0. Например,
```py
ss1[0] #Это – символ «Э»
ss1[8] #А это – символ «р»
ss1[-2] #А это – символ «о» (при знаке «-»(минус) отсчет от конца строки)
#Операция «разрезания» или «создания среза», создающая новый объект:
ss1[6:9] #Это часть строки – символы с 6-го индекса по 8-й (9-й не включается!)
ss1[13:] #Это часть строки – с 13-го индекса и до конца
ss1[:13] #Это часть строки – с начала и до 12-го индекса включительно
ss1[5:-8] #Это часть строки – с 5-го индекса и до 8-го от конца
ss1[3:17:2] #Часть строки – с 3-го по 16-й индексы с шагом 2
#в срезе указываются не позиции элементов, а их индексы и что указываемая правая граница в срез не включается.
Самостоятельно посмотрите, что получится при отрицательном значении шага:
ss1[17:3:-2]
#при ss1[-4:3:-2] результат такой же
#Строка является неизменяемым объектом!
ss1[4]='=' # Будет диагностика!
#Однако, можно это сделать по-другому, переопределив строку:
ss1=ss1[:4]+'='+ss1[5:]
```
Самостоятельно сделала некоторые срезы
```py
ss1b[0:23]
'Меня зовут: \n Соловьёва'
ss1b[14:23:1]
'Соловьёва'
ss1b[3:10]
'я зовут'
ss1b[14:23:2]
'Слвёа'
```
## 8. Сложные типы объектов.
```py
spis1=[111,'Spisok',5-9j] #Пример списка с 3 элементами разных типов
stup=[0,0,1,1,1,1,1,1,1]
spis=[1,2,3,4,
5,6,7,
8,9,10] #список будет считаться незавершенным, пока не будет введена закрывающая квадратная скобка
spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
spis1[-1]
(5-9j)
stup[-8::2] # от -8ого элемента до конца с шагом 2
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]
len(spis1) #число элементов в списке
help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
spis1.append('New item')
'Список'
spis1.append(ss1b)
print(spis1)
[111, (5-9j), 'New item', 'Меня зовут: \n Соловьёва Е. Д.']
```
len(...) возвращает длину списка(количестево элементов в контейнере) spis1.append(элемент) добавляет элемент в конец списка spis1+[элемент] - добавляет элемент на вывод 1 раз. Не вписывает этот элемент в список spis1.pop(индекс элемента) - удаляет элемент с указанным индексом spis1.reverse - переворачивает список spis1.insert(индекс, элемент) - вставляет элемент после элемента с указанным индексом spis1.extend(список) - присоединяет в конец другой список spis1.remove(элемент) - удаляет первый встреченный элемент равный указанному spis1.sort() - сортирует список в порядке возрастания spis1.copy() - создает поверхностную копию(shallow copy) spis1.index(элемент) - возвращает индекс первого соответсвующего элемента spis1.clear() - очищает список spis1.count(элемент) - считает кол-во соответствующих элементов
Списки могут быть вложенными:
```py
spis2=[spis1,[4,5,6,7]]
spis2[0][1]
(5-9j)
spis2[0][1]=78
spis1
[111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.']