# =========================================================
# STRING - и работа со строкой и символами
# =========================================================
last_name = 'Skorobogatov'
# Можно получить несколько символов (часть строки)
print(last_name)
print(last_name[0])# Печатает 1 символ ( по индексу он нулевой)
print(last_name[-1])# последний символ в обратном порядке
'''
# нумерация индексов с головы 0 1 2 3 4 5 6 7 8 9 10 11
# S k o r o b o g a t o v
# нумерация индексов с хвоста-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
'''
# _________________________________________________________
# Срезы :
# last_name[start:end]
print(last_name[1:4])
# 1 - с какого символа, 4 по какой символ
print(last_name[:4]) # срез с начала строки(ПО 4тый , 4тый НЕ ВКЛ)
print(last_name[7:]) # срез до конца строки(вкл указанный элемент)
# Пример среза:
top5 = 'Первые 5 мест на соревнованиях: 1. иванов 2. петров 3. сидоров 4. орлов 5. солов'
# хотим получиться - Поздравляем 1. ИВАНОВ 2. ПЕТРОВ 3. СИДОРОВ с успехом
start = top5.find('1') #ищем начало среза ( цифру один в данном случае)
end = top5.find('4') #ищем конец среза(цифру четыре )
top3 = top5[start:end]
result = 'Поздравляем {} с участием!'.format(top3.upper())
print(result)
# _________________________________________________________
# ФУНКЦИЯ (len) И МЕТОДЫ СТРОКИ
print(len(last_name)) #- длинна строки(сколько в ней символов)
print(last_name.find('a')) # ищет символ 'a' в строке
print(last_name.split()) # разбивает строки через пробел , так можно сделать массив из строки
print(last_name.isdigit()) # строка состоит из чисел или нет ?
print(last_name.upper()) # Приведение строки к верхнему регистру
print(last_name.lower())# приведение строки к нижнему регистру
# _________________________________________________________
# Оператор in просматривает вложенность
hero = 'Superman'
# это без in
if hero.find('er') != -1:# ищет er в строке, если нет , выдаст -1 .
print('Yes')
# с использованием in
if 'man' in hero:
print('Через in тоже ищет')
# _________________________________________________________
# Цикл for
for letter in last_name:
print(letter)
# =========================================================
# СПИСКИ - и работа со ними. List []
# =========================================================
empty_list = [] # пустой список
family = ['Roma','Kate','Dima','Ola','Anna','Sasha','Mama'] # Заполненный список
'''
# нумерация индексов с головы 0 1 2 3 4 5 6
# 'Roma' 'Kate' 'Dima' 'Ola' 'Anna' 'Sasha' 'Mama'
# нумерация индексов с хвоста -7 -6 -5 -4 -3 -2 -1
'''
print('Любимая жена -> ',family[1])
print('Племянница -> ',family[-3])
# _________________________________________________________
# Срезы: пременимы так как и в строке
print(family[1:3]) # выбирает с 1 по 3 элемент (НЕ включительно)
print(family[:2]) # выбирает ДО 2го элемента
print(family[1:]) # выбирает с 1 и до конца
# _________________________________________________________
# ФУНКЦИЯ (len) И МЕТОДЫ Списка
print(len(family)) # Длинна списка ( сколько в нём элементов)
family.append('Nada') # добавление нового элемента в конец списка
print(family) # Вывод списка вместе с новым элементом
print(family.pop()) # удаляем последний элемент списка и ВОЗВРАЩАЕМ ЕГО!!!
# family.clear() # Очищает весь список
family.remove('Anna') # удаляем объект из списка
print(family) # вывод обновленного списка без удаленного элемента
del family[3] # удаление элемента по индексу
print(family) # вывод обновленного списка
# _________________________________________________________
# Оператор in просматривает вложенность
if 'Roma' in family:
print('Всё хорошо')
#__________________________________________________________
# Цикл for перебирает все элементы последовательности
# while VS for
i=0
while i < len(family):
people = family[i]
print(people)
i = i + 1
# 5 строк кода против 2х.
for people in family:
#print(people) # вывод каждого элемента с новой строки
print(people,end=' ') # вывод всех элементов через пробел
#__________________________________________________________
# Функция range
# Вариант 1
for index in range(len(family)): # тут цикл идет по индексам на всю длину списка
print(index+1,')',family[index]) # i + 1 что бы был красивый вывод
# Вариант 2
for index in range(1, len(family)+1): # тут цикл идет по индексам от 1 до последнего + 1
print(index,')',family[index-1], end=' ') # тут index - 1 что бы не выйти за границы массива
# вывести нечетные цифры
print()
print(list(range(1,30,2))) # тут мы создаем список от 1 до 30 с шагом в 2
for numbers in range(1,10,2): # это уже не список а просто последовательность цифр от 1 до 30 с шагом в 2
print(numbers)
"""
for vs for range vs while
* for - перебор последовательности. Индекс не нужен
* for range - перебор последовательности. Нужен индекс
* for range - необходимо пропустить некоторые элементы или идти с конца в начало
* while - цикл связан с условием, но не с последовательностью
"""
# =========================================================
# Кортеж - и работа со ними. tuple ()
# =========================================================
"""
* Список который нельзя изменять
* Записывается в круглых скобках() в отличии от списка[]
* roles = ('user','manager', 'admin')
* Служит для защиты от изменений
"""
# =========================================================
# СЛОВАРИ - и работа с ними. dict {}
# =========================================================
"""
Словарь (dict) --> это не упорядоченные коллекции произвольных объектов с доступом по ключу.
Объявление словаря с фигурных скобках {}
my_dict = {key1:val1,key2:val2,...}
ОСНОВНЫЕ ДЕЙСТВИЯ СО СЛОВАРЕМ
* получение элемента по ключу my_dict['key1']
* добавление значения my_dict['key6'] = True
* изменение значения my_dict['key6'] = False
* удаление значения remove my_dict['key3']
* оператор in 'key1' in my_dict
"""
friends = {
'name': 'Max', # тут новый словарь со значениями
'age': '23',
'1': 'Stas',
'2': 'Slicer',
'3': 'Masel'
}
print(friends)
print(friends['3']) # вызываем по ключу [3] , значение.
friends['has_car'] = True # Добавляем в словарь
friends['4'] = 'Denis' # Добавляем в словарь ключ и значение
print(friends)
# Если значение в словаре имеется , то оно его можно изменить по ключу
friends['3'] = 'Malek' # Заменили значение с ключом [3] был Масел , стал Малек
print(friends)
del friends['1'] # удаляем элемент с ключом [1]
# _________________________________________________________
# условие
if '1' in friends:
print('Стас на месте') # но так как я удалил этот ключ и значение , вывода нет
if 'has_car' in friends:
print('Тачка есть')
#__________________________________________________________
"""
ВАРИАНТЫ ПЕРЕБОРА СЛОВАРЯ
* по ключам
* по значениям
* по парам ключ,значение
"""
# по ключам
for key in friends.keys():# key в данном случае название переменной , оно может быть любым
print(key) # тут мы получим только ключи
for key in friends.keys():# key в данном случае название переменной , оно может быть любым
print(friends[key]) # а тут только значения которые там хранятся
# можно записать и так
for key in friends:
print(key) # тут мы получим только ключи
for key in friends:
print(friends[key]) # а тут только значения которые там хранятся
# # по значению ( если нам не нужны ключу , нам нужны только значения)
for val in friends.values():
print(val) # Получим значения
# пары ключ - значение (тут мы работаем с парами ключ - значение)
for item in friends.items():
print(item) # получим и ключ и значение
for key,val in friends.items(): # тут мы пробегаем И по ключу И по значению а выводим что хотим
print(key) # тут получим ключи
print(val) # тут получим значения
# =========================================================
# Множества - и работа со ними. set {}
# =========================================================
"""
Множество (set) --> это не упорядоченные коллекции, содержащие не повторяющиеся элементы.
Объявляется множество фигурными скобками {}
my_set = {'Las Vegas','Paris','Moscow'}
* Во множестве не может быть 2-х одинаковых элементов
ОСНОВНЫЕ ДЕЙСТВИЯ СО МНОЖЕСТВАМИ
* добавление элемента my_set.add('Burma')
* удаление элемента my_set.remove('Moscow')
* длина множества len
* оператор in, цикл for
* работа с несколькими множествами(объединение,пересечение,...)
"""
cities = {'Las Vegas','Paris','Moscow','London','New York'} # создаем новое множество
print(cities)
cities.add('Madrid') # Добавляем элемент
print(cities)
cities.add('Paris') # Попытка добавить элемент который уже есть , ничего не дал. Элементы уникальны!
cities.remove('Moscow') # тут удаляем элемент Москва
print(cities)
print(len(cities)) # Показывает длину множества
print('Paris' in cities) # Проверяет есть ли элемент в множестве и выдает True/False
# Перебор элементов множества
for city in cities:
print(city,end=' ')
print()
'''
Операции со множествами
* Объединение |
* Пересечение &
* Разность(вычитание) -
'''
# Пример работы со множествами
# Семейная пара собирается в отпуск, каждый из супругов собирает в поездку вещи.
# Dima взял эти вещи:
dima_things = {'Телефон','Бритва','Рубашка','Шорты'}
# Kate взяла эти вещи:
kate_things = {'Телефон','Шорты','Зонтик','Помада'}
# Какие вещи взяли супруги ?
print(dima_things | kate_things) # объединение двух множеств вот эта палка |
# Найти вещи которые повторяются ?
print(dima_things & kate_things)# пересечение двух множеств (повторяющиеся элементы)
# Какие вещи взял Дима , но не взяла Катя ?
print(dima_things - kate_things) # Вычитаем из первого множества элементы второго
# Какие вещи взяла Катя, но не взял Дима ?
print(kate_things - dima_things) # Вычитаем из второго множество элементы первого
Основы Python словами ньюба (Часть 1)
Posted on:March 25, 2023 at 03:22 PM