Open Prod1gal opened 12 months ago
многострочный комментарий
verse = """первая строка вторая строка третья строка"""
print(verse)
verse = "первая строка\n\ вторая строка\n\ третья строка"
print(verse)
""" сырая строка """
path = r"C:\Program Files (x86)\dotnet" print(path)
Срез строк и индексы
s = "Hello world!" print(s[0]) #H print(s[-1]) #! print(s[-12]) #H s[0] = str(D) # str[0] = "D" будет ошибка, потому что строки неизменяемые
print(s)
s = "Hello world!" print(s[0:12]) # Hello world! print(s[0:5]) # Hello print(s[:5]) # Hello print(s[6:]) # world! print(s[::]) # Hello world! print(s[::2]) # Hlowrd print(s[::-1]) # !dlrow olleH перевернуть строку print(s[:5] + s[6:]) # Helloworld!
Методы строк
s = "hello" print(len(s)) # 5 длина строки
s = "HELLO" print(s.capitalize()) # Hello - переводит все символы в маленькие, а первый - в большой print(s) # метод не перезаписывает строку, а создает новый объект
s = 'hello' print(s.center(20)) # hello метод позволяет отцентрировать строку, по умолчанию слева и справа - пробелы, но можно задать любые символы
s = 'hello' print(s.center(20, "*")) # ***hello****
s = 'hello' print(s.count("l")) # 2 - метод возвращает количество вхождений символов в строку (диапазон можно указать [x:y:z] print(s.count("l", 0, 3)) # 1 - взять символ с первого по третий
s = "hello" print(s.find("l")) # 2 - возвращает подстроку в строке - первый индекс вхождения или -1 print(s.find("a")) # -1 - подстроки нет
s = 'hello' print(s.index("h")) # 0 - метода тоже возвращает индекс, но если символа нет - будет ошибка
s = 'hello' print(s.replace("l", "d")) # heddo - метод заменяет подстроку на другу
s = 'hello world' print(s.split()) # ['hello', 'world'] - символ, по которому происходит разделение, пробел по умолчанию print(s.split("*")) # ['hello world'] - если символа такого нет, то строка будет без изменений print(s.split("l")) # ['he', '', 'o wor', 'd']
s = 'hello' print(s.isdigit()) # False - метод проверяет состоит ли строка из цифр (полностью) print(s.isalpha()) # True - метод проверяет состоит ли строка из букв (полностью) если запятая, то тоже будет False
""" ФОРМАТИРОВАНИЕ СТРОК """
name = "John" age = 30 print("My name is " + name + ". I'm " + str(age)) print("My name is %(name)s, I'm %(age)d" %{"name":name, "age":age}) # d - digit, s - string print("My name is %s, I'm %d" %(name, age))
print("Title: %s. Price: %.2f" %("Sony", 40)) # Title: Sony. Price: 40.00
print("My name is {}. I'm {}.".format(name, age))
""" F-strings """
print(f"My name is {name}, I'm {age}") print(f"My name is {name}, I'm {age + 5}") # удобство в том, что при ф-форматировании можно менять значения внутри скобок
print(f"5 + 2 = {5 + 2}")
""" Оператор IF """
x = 0 if x: print("Переменная х вернула ИСТИНУ") else: print("Переменная х вернула ЛОЖЬ") # этот вариант
if 1: print("Выражение ИСТИННО") # этот вариант else: print("Выражение ЛОЖНО")
light = "red"
if light == "red": print("STOP") elif light == "yellow": print("Wait") elif light == "green": print("GO!!!") else: print("!??!? WAAAT")
age = int(input("Сколько Вам лет?: "))
if age >= 18: print("Добро пожаловать!") else: print("Вам ещё рано :)")
age = int(input("Сколько Вам лет?: "))
if age >= 18: print("Добро пожаловать!") elif age <= 18: print(f"Вам {age} лет. До совершеннолетия не хватает {18 - age} года:)")
"""циклы FOR | While """
i = 1 while i <= 10: print(i) i += 1 # i = i + 1
i = 1 while i <= 10: print(i, end=" ") i += 1 # горизонтальный набор цифр 1 2 3 4 5 6 7 8 9 10
s = "Hello world" for l in s: # для каждой буквы в строке print(l, end=' ')
s = "Hello World" for l in s: if l == " ": continue # продолжаем, игнорируя пробел print(f"'{l}'", end=" ")
""" СПИСКИ """
l = [1, 2, 3, ["test", 10], "world"] print(type(l))
l2 = list("hello") print(l2)
l3 = list((1, 2, 3)) # создание списка, двойные скобки как кортеж print(l3)
l4 = [i for i in "hello"] print(l4)
l5 = [i for i in "hello world" if i not in ["e", "o", " "]] print(l5)
l6 = [i*2 for i in "hello world" if i not in ["e", "a", "o", "i", "u", " "]] print(l6)
print(list(range(1, 10)))
print(list(range(11)))
print(list(range(0, 11, 2))) # start/end/step
for i in range (1, 3): print(f"Внешний цикл # {i}") for j in range(1, 3): print(f'\tВнутренний цикл # {j}')
"""Методы для работы со списками"""
l = [1, 2, 3, "hello", ["test", 10], "world", True] print(len(l)) # количество элементов списка
names = ["Ivanov", "Petrov", "Sidorov"] print(names[1])
print(l[3])
print(l[4][0])
print(l[0:3])
"""как изменить элементы списка"""
l = [1, 2, 3, "hello", ["test", 10], "world", True] l[2] = "WOHO" l[:2] = [10, 15] print(l)
l = [1, 2, 3, "hello", ["test", 10], "world", True]
l.append("new") # метод добавляет элемент в конец списка print(l)
l.extend([9, 8, 7]) # метод добавляет все элементы нового списка в конец старого списка print(l)
l2 = ["hi", 19] # сложение списков l += l2 print(l)
l.insert(1, "1000") # метод добавляет элемент в выбранный индекс (1 - это индекс, 1000 - это элемент на замену. Все индексы также сдвигаются print(l)
l.remove("hello") # метод удаляет выбранный элемент print(l)
test_list = l.pop() # метод удаляет последний элемент (или по индексу в скобках) и переносит его из списка в переменную print(test_list) print(l)
test_list = l.pop(1) print(test_list) print(l)
a = l.index(9) # метод возвращает индекс выбранного элемента print(a)
l = [1, 2, 3, "hello", ["test", 10], 1, "world", True, 1]
b = l.count(1) # метод возвращает количество элементов с выбранным значением print(b)
""" КОРТЕЖИ """
t1 = 1, 2, 3 # упаковка кортежа t1 = tuple((1, 2, 3)) t1 = () # пустой кортеж t1 = (1,)
print(type(t1))
t2 = tuple("hell0") print(t2)
t1 = tuple("hello") t2 = tuple("world") t3 = t1 + t2
print(t3)
t1 = (10, 11, [1, 2, 3], ["hello", 'hi']) t1[2][0] = "new" # сработает только в том случае, если мы обратимся к изменяемому элементу неизменяемого кортежа print(t1)
t1 = (1, 2, 3) x = t1[0] y = t1[1] z = t1[2]
print(x, y, z)
x, y, z = t1 # та же самая операция, что и сверху в три строчки (распаковка кортежа)
x = 1 y = 2 print(x, y) x, y = y, x print(x, y)
l = list(range(1, 10)) l2 = list("hello")
print(l)
s = " - ".join(map(str, l)) s2 = " - ".join(l2) print(s)
print(s2)
""" МНОЖЕСТВА """
s = {"apple", "orange", "apple", "pear", "orange", "banana"}
print(type(s))
print(s)
s2 = set("hello") print(s2)
s3 = {i for i in range(1, 11)} print(s3)
s4 = {3, 10, 13, 4, 5, 7} print(s4)
s5 = {} print(type(s5))
s6 = set() print(type(s6))
nums = [1, 1, 2, 5, 6, 7, 8, 8, 8, 10] nums2 = set(nums) print(nums2)
a = set("abracadabra") b = set("alacazam") c = a - b # вычитание - убираем все буквы из а, которые есть в b d = a | b # объединение - буквы или а или буквы в b e = a & b # пересечение - буквы и в а, и в b f = a ^ b # множество из элементов - буквы в аб или в b, но не в обоих
print(a, b, sep="\n")
print(c)
print(d)
print(e)
print(f)
set.copy() - возвращает копию множества set.add(elem) - добавляет элемент в множество set.remove(elem) - удаляет элемент из множества. KeyError, если такого элемента не существует set.discard(elem) - удаляет элемент, если он находится в множестве set.pop() - возвращает и удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым. set.clear() - очистка множества
s = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} s.clear() print(s) s2 = s.copy()
print(s, id(s)) print(s2, id(s2))
a = frozenset('hello') print(a)
""" СЛОВАРИ """
product1 = { "Title": "Sony", "Price": 400 }
print(product1)
product2 = dict(title="Sony", price=400) print(product2)
users = [ ["bob@gmail.com", "Bob"], ["GraceKelly@gmail.com", "Grace"], ["Jolie@mail.ru", "Angie"] ]
d_users = dict(users) print(d_users)
product3 = dict.fromkeys(["price_1", "price_2", "price_3"], 500000) print(product3)
nums = {i: i + 1 for i in range(1, 10)} print(nums)
product4 = { "Title": "Iphone", "Price": 100000 }
print(product4["Title"])
for key in product4: print(product4[key])
# Iphone
# # 100000
# print(f"{key}: {product4[key]}")
# Title: Iphone
# Price: 100000
for key, value in product4.items(): print(key, value)
# Title Iphone
# Price 100000
""" МЕТОДЫ СЛОВАРЯ """
product1 = {'Title': "Sony", 'Price': 400} print(product1.items())
print(product1.keys())
print(product1.pop('Title'))
print(product1)
product1.update({'Test': "vale"}) print(product1)
print(product1.values())
print(30 % 2) #0
print(7 % 2) #1
print(7 // 2) #3
print(100 ** 0.5) #10