Python

Python

TW

Ideas:
I wanna create my the first book about programming for myself. Уникальный номер книги вписываешь на сайт проходишь тест получаешь сертификат

Основы Python

Код это инструкции

# комментарий

‘’’ облачный комментарий ‘’’

Переменные предназначены для хранения данных

\: позволяет добавить внутрь строки слеш

\': позволяет добавить внутрь строки одинарную кавычку

\": позволяет добавить внутрь строки двойную кавычку

\n: осуществляет переход на новую строку

\t: добавляет табуляцию (4 отступа)

Математика: +, -, *, /, //, **, %,

Ставь отступы кратные 4

Отступы позволяют отнести код к какой либо конструкции

print Print PRINT - разные значения

Функции

print - выводит информацию на консоль

print(“hello”)


input - принимает любые написанные значения


round() - первое число — округление, второе число — знаки после запятой

print(round(2.49)) # 2

print(round(2.51)) # 3

Округление происходит к ближайшему четному

print(round(2.5)) # 2

print(round(3.5)) # 4


Типы данных

Bool - true/false

Int - целые числа 1, 10, 100

Float - дробь 1.10, 10.100

Complex - комплексные числа

Str - строки

Перевод типов данных:

Hello = Hi

Word = 1488

print(Hello + World) # error

print(Hello + str(World)) # Hi 1488

print(Hello, World) # Hi 1488


Ключевые слова

False await else import pass

None break except in raise

True class finally is return

and continue for lambda try

as def from nonlocal while

assert del global not with

async elif if or yield


Неприятные ситуации

path = "C:\python\name.txt"

print(path)

# C:\python

ame.txt

Чтобы избежать:

path = r"C:\python\name.txt"

print(path)


Как вставить значения в строку: f"{}"

userName = "Tom"

userAge = 37

user = f"name: {userName} age: {userAge}"

print(user) # name: Tom age: 37


Советы

Играй в кодигры


Lifehuck

Быстрое комментирование несколько строк: Ctrl /


Математические функции

min(1, 2) - находит минимальный элемент

max(1, 2) - максимальный

pow(5, 3) - возводит в степень

abs(-5) - находит число по модулю

round(5 / 3) - округление


Параметры:

End — про многократном вызове print каждое значение переходит на новую строчку end позволяет все разместить в одной строке

Где это может пригодиться?

print("Hello World", end=" ")

print("Hello Python")

# Hello World Hello Hello Python


Директива:

del — удаляет


Сравнение

==

True, если оба операнда равны. Иначе False.

!=

True, если оба операнда НЕ равны. Иначе False.

> (больше чем)

True, если первый операнд больше второго.

< (меньше чем)

True, если первый операнд меньше второго.

>= (больше или равно)

True, если первый операнд больше или равен второму.

<= (меньше или равно)

True, если первый операнд меньше или равен второму.


Условные конструкции:

if (not) — проверка условия, если верно или нет то…

/

If test and test1 — если два условия будут корректны то…

/

If test or test1 — если одно из них верно то…

elif — между if и else, Дополнительное условие.

else — записывается в самом конце

«раз ничего не подошло значит это»

in — True если в наборе значений есть определенное значение.

Строка это символы. С помощью in мы можем проверить, есть ли в ней какая-нибудь подстрока:

message = "hello world!"

hello = "hello"

print(hello in message)  # True - подстрока hello есть в строке "hello world!"

in not:

gold = "gold"

print(gold not in message)  # True


Тернарный оператор:

Короткий способ условия

test = input()

number = 1488 if test == “hi” else 0

(Y) hi

(O) 1488


Поразрядные операции

Двоичное число 0, 1

0 = 0 в двоичной и десятичной

1 = 1 в двоичной и десятичной

Десятичное число 2 = 10 в двоичное системе

1 + 1 = 10 в двоичной системе

fx:

Для десятичного числа в двоичной системе можно применять спецификатор 0b

number = 5 # в двоичной 101

print(f"number = {number:0b}")  # number = 101


Циклы — код который можно выполнять несколько раз

For — for переменная in переменная

While — пока условие верное цикл будет работать


For i in range(6):

print(i)

O 0 1 2 3 4 5


For i in range(1, 6):

print(i)

On1 2 3 4 5


For i in range(1, 6, 2):

print(i)

O 1 3 5

(Первый параметр начало

Второй — до скольки

Третий — шаг)

/

i = 5

while i < 15:

print(i)

i += 2 #добавляем число 2

O 5 7 9 12 13


Операторы:

Break — выходит из цикла

Работает:

for i in range(1,11):

If i == 5

break

print(i)

O 1 2 3 4 5


Continue— пропускает итерацию

Работает:

for i in range(1,11):

If i == 5

break

If 1%2 ==0:

continue

print(i)

O 1 2 3 4 5


Списки

Difference between variables and lists в количестве value

variable = [1, True, “hello”]

(edit data):

variable[0] = 2

print(variable)

O [2, True, “hello”]


(вывести что-то определённое):

print(variable[1])

O [True]


(список в списке):

variable = [1, True, “hello”, [2, 3]]

print(variable[3]

O [2, 3]


(add new data):

variable.append(4)

print(variable)

O [1, True, “hello”, 4]


(functions)

append — добавляет в конец списка

insert(1, true) — значение по индексу

extend([5, 6, 7]) — добавляет набор

sort — упорядочивает список

reverse — переверчивает порядок

pop — удаляет последний элемент

remove(true) — удаление значений

clear — удаляет весь список

count(1) — считает элементы

len(variable) — считает длину списка


Function — code block

В скобках указывается параметры

def variable():

print('hello')

variable()

O hello

/

def variable(a, b):

res = a + b

print(“Result”, res)

variable(1, 1)

variable(“H”, “i”)

O 2

O Hi


Local function — функция внутри функции


Параметры функции

def variable(name):

print(f'hello, {name}')

variable('Tommy')

variable('Julia')


Значения по умолчанию

def variable(name="Tom"):

print(f"Hello, {name}")

variable() # name будет иметь значение "Tom"

variable("Julia")


Именованные параметры

def variable(name, age):

print(f"Name: {name} Age: {age}")

variable(age = 22, name = "Tom")


Возвращение результата

Return — определяется в конце функции

def variable(a, b):

return a + b

result = sum(4, 6)


Tuple — списки которые нельзя видоизменять весят меньше (?, )

Ни добавить ни убавить

Обращение к элементу через []

Преобразование к кортежу:

tuple(variable)


lambda — анонимная функция. Позволяет сократить код. Выполняет одну инструкцию.

f.x.

sum = lambda a, b: a + b

print(sum(4, 5))

print(sum(5, 6))


Global/Local context

Глобальный — определена вне функций. Доступна любой функции.

Локальный — определяется внутри функции.


Если нужно изменить в локальной функции глобальную переменную, а не определить локальную, то используй global:

global variable


Замыкание — функция запоминает свое лексическое окружение (???)


Словарь — ключ для определённого значения {}

fx:

variable = {something: 10}

print(variable[something])

O 10


(Это уже было)

f-строки, сокращение от форматированных строк, позволяют нам отображать такие выражения, как добавление строки к числу, без каких-либо ошибок.

print(f’{2} new message’)


Множества — список в которым не может быть повторяющихся элементов.

Set

variable = set(‘something’)

print(variable)

O {'m', 'e', 't', 'o', 's', 'i', 'n', 'h', 'g'}


Frozenset — кортеж + множества

variable = frozenset([‘something’])

print(variable)

O {'m', 'e', 't', 'o', 's', 'i', 'n', 'h', 'g'}


Объектно-ориентированное программирование (DIFFICULT)

Человек может думать бегать набор характеристик который можно назвать классом.

class Person:

pass

# 2 объекта:

Tom = Person()

Julia = Person()


Метод класса — набор функций в классе. Параметр в скобках метода.

class Person:

def say_hello(self):

print("Hello")


Tom = Person()

Tom.say_hello()

O Hello

# self — ссылка на текущий объект


class Person:

def say(self, message):

print(message)


Tom = Person()

Tom.say(“Hello”)

O Hello


Конструкторы — для создания объекта __init__()


Инкапсуляция, атрибуты и свойства (DIFFICULT)


pass — keyword ничего


(2 сообщение уже было)

functions


Return — вернуть что-то из функции (для дальнейшей работы с ней) можно записать функцию в виде переменной

def variable(a, b):

res = a + b

return rec

res = variable(1, 1)

print(res)

O 2

/

def variable(a, b):

return a + b

print(variable(1, 1))


Работа с файлами за счет Python

Важно для начала открыть и не забыть закрыть файл.

Функция open

1 параметр — название что открываем

2 — способ открытия


variable = open('file.txt', 'w')

variable.write('Hello')

variable.close()

/

user = input('Enter something in the file: ')

variable = open('file.txt', 'w')

variable.write(user)

variable.close()

/

variable = open('file.txt', 'r')

print(variable.read())

variable.close()


Способы открытия file

write — (пере)записать файл автоматически создаёт файл

append — добавляет информацию

read — открыть для чтения


Наследование — создаёт новый класс на основе существующего

Подкласс — ребёнок наследует все публичные атрибуты и методы.

Суперкласс — родитель

f.x.

class подкласс (суперкласс):

методы_подкласса


Множественное наследование:

class Employee + class Student = class WorkingStudent(Employee, Student)

Переопределение функционала базового класса


Обработчик исключений — нужен чтобы пользователь мог продолжить работать с программой после ошибки

2 типа ошибок:

syntax error

runtime error — строка в число


variable = 0

while variable == 0

try:

variable = int(input("Enter num"))

variable += 5

print(variable)

#отслеживает ошибку

except ValueError:

print("you entered word, you have to enter number")


Передать искл в переменную с помощью as:

except ValueError as variable

print("You made a mistake: ", variable)


Атрибуты классов и статические методы


Строковое представление объекта


«With ... as» — для работы с files на языке Python


Модули — набор файлов подключаемый к проекту.

f.x.

# импортируем модуль. Через точку открывается весь доступ

Import time

time.sleep(3)

print("Hello")

O #через 3сек. Hello

/

# в переменную через as

Import time as t

t.sleep(3)

print("Hello")

/

# импортировать что-то конкретное из модуля

from math import sqrt

/

# создаем свой модуль

Новый файл: mymodule

name = "Tommy"

def hello():

print("Hello ", name")


# в новом файле импортируем

import mymodule as my

print(my.name)

my.hello()

O Tommy

O Hello Tommy


Найти все встроенные функции


Генерация исключений и создание своих типов исключений

Списки, кортежи и словари

Кортежи

Диапазоны

range — неизменяемый набор числе

range(start/stop/start,stop,step)

1) возвращает числа от 0 до stop

Range(5) — 0 1 2 3 4 5

2) возвращает числа от start до stop

Range(1,5) 1 2 3 4

3) возвращает числа от start до stop которые увеличиваются на step

Range(2,10,2) 2,4,6,8


Основы ООП — class чертёж робота, начинка. Объект — сам робот со значениями и данными. Наследование — добавление полезных опций к чертежу. Полиморфизм — общий функционал, что можно переписать для определённой модели робота. Инкапсуляция — защита внутренних данных. Поле == переменная. Метод == функция


class Robot:

model = None

age = None

robot1 = Robot()

robot1.model = "TW1488"

robot1.age = 20

robot2 = Robot()

robot2.model = "JW1802"

robot2.age = 18

print(robot1.model)

print(robot2.model)


/


class Robot:

model = None

age = None

def set_data(self, model, age):

self.model = model

self.age = age


def get_data(self):

print("Model: ", self.name, "Age: ", self.age)


robot1 = Robot()

robot1.set_data("TW1488", 21)

robot2= Robot()

robot2.set_data("JW1802", 18)


robot1.get_data()

robot2.get_data()


Словари

Множества

Конструкторы, переопределение методов

__init__(self): — создание конструктора для передачи его в параметры.


Модули — файл с кодом который можно повторно использовать. Расширение .py.


Модуль random


Наследование, инкапсуляция, полиморфизм


class Building:

year = None

city = None


def __init__(self, year, city):

self.year = year

self.city = city


def get_info(self):

print("Year: ", self.year, "City: “, self.city)


school = Building(1999, "Berlin")


Модуль math

Модуль locale — для разных стран

Модуль decimal — округление


Строки

\ добавить слеш

\' добавить одинарную кавычку

\" добавить двойную кавычку

\n переход на новую строку

\t добавляет табуляцию

Основные методы строк

Форматирование


Pattern matching — сопоставление выражения с шаблоном, похожа на if/else/elif. Позволяет: извлечь данные, применять действия к объектам.

match выражение:

case шаблон_1:

действие_1

case шаблон_2:

действие_2


def print_hello(language):

match language:

case "english":

print("Hello")

case "german":

print("Hallo")

print_hello("english")

print_hello("german")

/

при несовпадении значений применяется шаблон _ (прочерк):

case _:

print("Undefined")

/

также можно определить блок case, который позволяет сравнивать сразу с несколькими знечениями.

case "american english" | "british english" | "english":

print("Hello")

/

def operation(a, b, code):

match code:

case 1:

return a + b

case 2:

return a - b

case 3:

return a * b

case _:

return 0

print(operation(10, 5, 1)) # 15

print(operation(10, 5, 2)) # 5

print(operation(10, 5, 3)) # 50

print(operation(10, 5, 4)) # 0


Кортежи в pattern matching

/

Альтернативные значения

/

можно перечислить через вертикальную черту:

case ("Tom" | "Tomas" | "Tommy", 37):

print("default user")

/

Пропуск элементов -- указать шаблон _

/

case (name, _): # второй элемент не важен

print(f"Name: {name}")

/

Кортеж с неопределенным количеством элементов

/

def print_data(user):

match user:

case ("Tom", 37, *rest):

print(f"Rest: {rest}")

case (name, age, *rest):

print(f"{name} ({age}): {rest}")

print_data(("Tom", 37)) # Rest: []

print_data(("Tom", 37, "Google")) # Rest: ["Google"]

print_data(("Bob", 41, "Microsoft", "english")) # Bob (41): ["Microsoft", "english"]

Выше применяется параметр *rest, который соответствует всем остальным элементам. Все элементы начиная с третьего будут помещаться в параметр rest, который представляет массив значений.


Report Page