# Python
Метод динамической строгой типизации.
Не должны указывать тип переменной.
Тип переменной должны ук
фунцкия int превращает в строку
функция str - превращает строку в число
len - вернет длину последовательности
s[N - 1] - отрицательный индекс
s[3:5] - срез. Первый входит, послений не включительно
s[::-1] - зеркальное отражение/реверс строки
**Арифметика**
x3 = x **y (x в третьей степени)
квадратный корень из 3 = 3**0,5
a в степение b в спенени c = a**b**c(сначала выесляется с потом b потом а)
-x= -x
2/3 = 0,666... (float - дробные значения)
X div / y = x // y - деление с отрбасыванием дробей (целочисленное деление)
xmod / y = x%y - деление с остатком -12%10 = -2
(-11)//10= -2
(-11)%10 = 9
**Управляющие операции**
цикл while, цикл for
while условие: (заголовок)
оператор 1 (тело цикла - последовательность оператора выполняемое технически)
оператор 2
.....
оператор N
итеррация - однократное выполнение тела цикла
break - остановка цикла -без использования последующего else(выход из цикла)
else:
после всех иттераций
2+2==4 - операция присваивания
2+2=4 - операция сравнения
**Вложенный цикл**
while x>0:
y=x
while y>0:
y -=1
x=x+1 ==> x+=1
x = x-10 ==> x-=10
*=
/=
//=
%=
x=int(input()) - загоняем строку input в целочисленное число int
x=int(input())
while x>0:
while y>0:
y-=1
print(y)
x-=1
print("stop")
if условие:
on 1
else:
on 2
**Цикл for**
for x in 1,5,2,4,3:
print(x**2)
else:
**range** (start,stop,step) - генератор арифметической прогрессии универсальный
range(1,10,1)
1,2,3...9
continue - оператор остановить и продолжить сначала




ДЗ 1
#dzpython1
пользователь вводит два числа, выведите эти числа на экран в порядке убывания
*пользователь вводит три числа
для заданий выше сортировку и подобные функции не используем
** решите задачу для произвольного количества чисел внутри одного print(...) (использовать сортировку можно), здесь числа вводятся в один input через пробел, т.е. так: 1 44 55 22 12 32 0 77...
**Метод List.sort в Python** https://dev-gang.ru/article/metod-listsort-v-python-b5gidv4ync/
**Сортировка** https://tatyderb.gitbooks.io/python-step-by-step/content/chapter_seq/8-sort.html

# Cтроковые методы
https://www.programiz.com изучение питон
https://www.codewars.com - решение задач для практики
ДЗ 2
=== дз2
дана строка, найдите самую "большую" букву в этой строке и ее индекс.
(буквы в строке это тоже строки и их можно сравнивать, т.е. условие "a" > "g" - валидное. Строки сравниваются в алфавитном порядке.
Например для строки "abhcdefg"самая большая буква это h, а ее индекс - 2.
*найдите вторую "большую" букву в строке. Для строки "abhcdefg" ответ - "g"
**сделайте задание * в одну строку внутри print(<весь код здесь>)
ВО ВСЕХ ЗАДАНИЯХ ВЫШЕ ФУНКЦИИ MAX и SORT ИСПОЛЬЗОВАТЬ НЕЛЬЗЯ






пузырьковая сортировка

# урок 3
Числа могут быть преобразованы в строки с помощью функции **str()**. Например, **str(123)** даст строку ’123’. Если строка является последовательностью знаков-цифр, то она может быть преобразована в целое число в помощью функции **int()**: **int(’123’)** даст в результате число 123, а в вещественное с помощью функции **float()**: **float(’12.34’)** даст в результате число 12.34. Для любого символа можно узнать его номер (код символа) с помощью функции **ord()**, на- пример, **ord(’s’)** даст результат 115. И наоборот, получить символ по числовому коду можно с помощью функции **chr()**, например **chr(100)** даст результат ’d’.
**Базовые операции над строками**

**Условия и логические операции**
Логический (**булевский**) тип может принимать одно из двух значений True (истина) или False (ложь). В языке Python булевский тип данных обозначается как bool, для приведения других типов данных к булевскому существует функ- ция bool(), работающая по следующим соглашениям:
• строки: пустая строка — ложь, непустая строка — истина.
• числа: нулевое число — ложь, ненулевое число (в том числе и меньшее единицы) — истина.
• функции — всегда истина.
Из логических переменных и выражений можно строить более сложные (со- ставные) логические выражения с помощью логических операторов: **not** (отри- цание, логическое НЕ), **or** (логическое ИЛИ) и **and** (логическое И):
• x and y — логическое **«И»** (умножение). Принимает значение True (исти- на), только когда x = True и y = True. Принимает значение False (ложь), если хотя бы одна из переменных равна False, или обе переменные False.
• x or y — логическое **«ИЛИ»** (сложение). Принимает значение True (исти- на), если хотя бы одна из переменных равна True, или обе переменные True. Принимает значение False (ложь), если x == y == False.
• not x — логическое «НЕ» (отрицание). Принимает значение True (истина),
если x == False. Принимает значение False (ложь), если x == True.
Оператор **\** позволяет перенести часть кода на следующую строчку, число начальных пробелов в которой неважно.
**Списки**






**Кортежи**


**Словари**
Словарь — это изменяемый (как список) неупорядоченный (в отличие от строк и списков) набор пар ’ключ:значение’. Словари оказываются очень удобными объектами для хра- нения данных и, по сути, являются своеобразной заменой базе данных.
В словаре доступ к значениям осуществляется по ключам, которые заключаются в квадратные скобки (по аналогии с индексами строк и списков):
>>> animal={’cat’:’кошка’,’dog’:’пёс’,’bird’:’птица’,’mouse’:’мышь’} >>> animal[’cat’]
’кошка’
Словари, как и списки, являются изменяемым типом данных: можно изме- нять, добавлять и удалять элементы — пары ’ключ:значение’. Изначально сло- варь можно создать пустым, например, dic = {} и лишь потом заполнить его элементами.
Добавление и изменение имеет одинаковый синтаксис: словарь[ключ] = значение. Ключ может быть, как уже существующим (тогда происходит измене- ние значения), так и новым (происходит добавление элемента словаря). Удаление элемента словаря осуществляется с помощью функции del(dic[key]) или мето- да pop(key):
>>> dic = {’cat’:’кошка’,’dog’:’пёс’,’bird’:’птица’,’mouse’:’мышь’} >>> dic[’cat’] = ’кот’
>>> dic
{’mouse’: ’мышь’, ’cat’: ’кот’, ’dog’: ’пёс’, ’bird’: ’птица’}

**Методы словарей**
Метод
Что делает
clear()
Удаляет все элементы из словаря
copy()
Возвращает неглубокую копию словаря
fromkeys(seq[, v])
Возвращает словарь с ключами из seq и значениями, равными v (по умолчанию None)
get(key[,d])
Возвращает значение ключа key. Если key не существует, возвращает d (по умолчанию None)
items()
Возвращает новый объект элементов словаря в формате (ключ, значение)
keys()
Возвращает новый объект с ключами словаря
pop(key[,d])
Удаляет элемент с ключом key и возвращает его значение или d, если key не найден. Если d не было обозначено и key не найден, вызывает ошибку KeyError.
popitem()
Удаляет и возвращает произвольную пару (ключ, значение). Вызывае ошибку KeyError, если словарь пустой.
setdefault(key[,d])
Если ключ key есть в словаре, возвращает соответствующее ему значение. Если нет, добавляет в словарь элемент с ключом key и значением d и возвращает d (по умолчанию None)
update([other])
Обновляет словарь имеющимися парами ключ/значение из other, перезаписывая существующие ключи
values()
Возвращает новый объект со значениями словаря
**Встроенные функции для словарей**
Встроенные функции all(), any(), len(), cmp(), sorted() и т. д. часто используются со словарями для разных задач.
Функция
Описание
all()
Возвращает True, если все ключи словаря = True (или если словарь пуст)
any()
Возвращает True, если хотя бы один ключ словаря = True. Если словарь пуст, возвращает False.
len()
Возвращает длину (количество элементов) словаря
cmp()
Сравнивает элементы двух словарей (не работает в Python 3)
sorted()
Возвращает новый список с отсортированными ключами словаря
#dzpython3 **ДЗ№3**
даны три списка (придумайте их сами): список имен пользователей, список их ip, список логинов
создайте список, содержащий информацию о каждом пользователе в виде словарая с ключами name, ip, login
пример итогового списка: [{"name":"vasya","ip":"192.168.10.1","login":"vasya123"},{....},{....}]
сдампите его в виде json-файла, используя модуль json.
код для дампа:
import json
sp = ... # ваш объект для дампа (список пользователей)
json.dump(sp,open("users.json","w"))
#profit
*сделайте ввод пользователей и их данных (с клавиатуры или из файла(ов)



ДЗ 4 - работа с файлами и директориями





Рефактор - меняет во всем файле, а так же в связанных

# процедурное програмиррование








global

лямбда функции

os system





check_output - вывод команды







ДЗ 6






https://httpbin.org тренировка для веб и питон
ДЗ 7

