Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:pyton:variable [2022/01/22 10:46] admin |
develop:pyton:variable [2022/01/22 16:32] (текущий) admin |
||
---|---|---|---|
Строка 26: | Строка 26: | ||
==== Ввод ==== | ==== Ввод ==== | ||
- | Для ввода есть функция **input()**, | + | Для ввода есть функция **input()**, |
<code python> | <code python> | ||
Строка 64: | Строка 64: | ||
* **bytearray** - изменяемая последовательность байт | * **bytearray** - изменяемая последовательность байт | ||
* **list** - списки. Аналогичен массивам **type([1, | * **list** - списки. Аналогичен массивам **type([1, | ||
- | * **tuple** - кортежи **type((1, | + | * **tuple** - кортежи **type( (1,2,3) )** |
* **range** - диапазон **type(range(1, | * **range** - диапазон **type(range(1, | ||
* **dict** - словари. Аналогичен ассоциативным массивам **type({" | * **dict** - словари. Аналогичен ассоциативным массивам **type({" | ||
Строка 98: | Строка 98: | ||
После присваивания, | После присваивания, | ||
Несколько переменных могут ссылаться на один и тот же объект в памяти. Например при множественном присваивании изменяемых объектов (list/ | Несколько переменных могут ссылаться на один и тот же объект в памяти. Например при множественном присваивании изменяемых объектов (list/ | ||
+ | :?: на счет изменяемых объектов под вопросом\\ | ||
<code python> | <code python> | ||
Строка 105: | Строка 106: | ||
x is y # Ссылается ли x на y | x is y # Ссылается ли x на y | ||
sys.getrefcount([1, | sys.getrefcount([1, | ||
- | |||
</ | </ | ||
+ | Так же работает позиционное присваивание. Если кол-во не совпадает будет ошибка, | ||
<code python> | <code python> | ||
+ | x,y= y,x # Так можно поменять местами значение переменных | ||
+ | a,b,*c= 1,2,3,4,5 | ||
</ | </ | ||
+ | |||
+ | ==== Проверка типа ==== | ||
<code python> | <code python> | ||
+ | type(a) # Сообщение с указанием типа | ||
+ | if(type(x)== int): | ||
+ | # Целое число | ||
+ | | ||
+ | if isinstance(s, | ||
+ | # Строка | ||
</ | </ | ||
- | <code python> | ||
- | </code> | + | ==== Преобразование ==== |
+ | * bool(), float() | ||
+ | * int(<объект>, < | ||
+ | * str(), str(<>,< | ||
+ | * bytes(), bytes(<>,< | ||
+ | * bytearray(), | ||
+ | * list(), tuple() | ||
<code python> | <code python> | ||
+ | int(7.5); int(" | ||
+ | float(" | ||
+ | </ | ||
+ | |||
+ | ==== Удаление ==== | ||
+ | <code python> | ||
+ | del x | ||
+ | del x,y | ||
</ | </ | ||
- | ==== Проверка типа | + | ===== Операторы ===== |
+ | ==== Математические операторы ==== | ||
+ | Стоит отменить: | ||
+ | / - деление, | ||
+ | // - деление с округлением вниз (слеши вместе) | ||
+ | % - остаток от деления | ||
+ | ** - возведение в степень | ||
+ | Работа с десятичными числами может быть неочевидной, | ||
+ | Decimal(" | ||
- | ==== Преобразование ==== | ||
+ | ==== Двоичные операторы ==== | ||
+ | <code python> | ||
+ | # Инверсия(~), | ||
+ | </ | ||
- | ==== Удаление ==== | ||
+ | ==== Для работы с последовательностями ==== | ||
+ | Конкатенация(+), | ||
- | ===== Операторы ===== | ||
- | ==== ==== | + | ==== Операторы присваивания |
- | ==== ==== | + | Комбинируется со всеми мат операторами.\\ |
===== Условные операторы и циклы ===== | ===== Условные операторы и циклы ===== | ||
+ | **Любой объект** может интерпретироваться как логическое выражение, | ||
+ | False будет только **пустое или нулевое** значение\\ | ||
+ | В сравнении все обычно, | ||
- | ==== ==== | + | ==== Ветвление |
- | ==== ==== | + | Условие можно помещать в круглые скобки, |
+ | Блок можно размещать в одно строке, | ||
+ | <code python> | ||
+ | if x % 2== 0: | ||
+ | # chet | ||
+ | else: | ||
+ | # ne chet | ||
+ | | ||
+ | if var== " | ||
+ | elif not var: #<empty value> | ||
+ | else: #act1; act2 | ||
+ | </ | ||
+ | |||
+ | ==== Цикл for ==== | ||
+ | По сути это **foreach**, | ||
+ | В конце можно добавить блок **else**, который выполнится (если не было **break**) после цикла\\ | ||
+ | |||
+ | <code python> | ||
+ | # Перебор словаря | ||
+ | arr= {" | ||
+ | for key in arr.keys(): # метод keys() возвращает перечень ключей | ||
+ | print(key, arr[key]) | ||
+ | else | ||
+ | print(" | ||
+ | |||
+ | # Конкретно для цикла можно обойтись и без keys() | ||
+ | for key in arr: | ||
+ | print(key, arr[key]) | ||
+ | |||
+ | # Тут элементы списка кортежей | ||
+ | arr= [(1,2), (3,4)] | ||
+ | for a,b in arr: | ||
+ | print(a,b) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== range() и enumerate() ==== | ||
+ | **range(< | ||
+ | Содержит два метода: | ||
+ | * **index(< | ||
+ | * **count(< | ||
+ | |||
+ | <code python> | ||
+ | for i in range(1, 100): print(i) # 1-100 | ||
+ | for i in range(100, 0, -1): print(i) # 100-1 | ||
+ | </ | ||
+ | |||
+ | **enumerate(< | ||
+ | Функция **не создает список, | ||
+ | |||
+ | <code python> | ||
+ | arr= [1, | ||
+ | for i, elem in enumerate(arr): | ||
+ | arr[i] *= 2 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Цикл while(), continue/ | ||
+ | Все так же, в цикле тоже есть ветка **else**\\ | ||
+ | |||
+ | <code python> | ||
+ | print(" | ||
+ | summ=0 | ||
+ | while True: | ||
+ | x= input(" | ||
+ | if x== " | ||
+ | break | ||
+ | summ += int(x) | ||
+ | print(" | ||
+ | </ |