Инструменты пользователя

Инструменты сайта


develop:pyton:variable

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
develop:pyton:variable [2022/01/22 08:55]
admin
develop:pyton:variable [2022/01/22 16:32] (текущий)
admin
Строка 26: Строка 26:
  
 ==== Ввод ==== ==== Ввод ====
-Для ввода есть функция **input()**, она возвращает введенное значение+Для ввода есть функция **input()**, она возвращает введенное **значение в виде строки**\\
 <code python>MyVar= input("Input String: ")</code> <code python>MyVar= input("Input String: ")</code>
  
Строка 64: Строка 64:
   * **bytearray** - изменяемая последовательность байт   * **bytearray** - изменяемая последовательность байт
   * **list** - списки. Аналогичен массивам **type([1,2,3])**   * **list** - списки. Аналогичен массивам **type([1,2,3])**
-  * **tuple** - кортежи **type((1,2,3))**+  * **tuple** - кортежи **type( (1,2,3) )**
   * **range** - диапазон **type(range(1,10))**   * **range** - диапазон **type(range(1,10))**
   * **dict** - словари. Аналогичен ассоциативным массивам **type({"five":5, "ten": 10})**   * **dict** - словари. Аналогичен ассоциативным массивам **type({"five":5, "ten": 10})**
Строка 96: Строка 96:
  
 ==== Присваивание значения ==== ==== Присваивание значения ====
- +После присваивания, в переменной сохраняется **ссылка на объект а не сам объект**\\ 
 +Несколько переменных могут ссылаться на один и тот же объект в памяти. Например при множественном присваивании изменяемых объектов (list/dict/bytearray) это происходит автоматически\\ 
 +:?: на счет изменяемых объектов под вопросом\\
  
 <code python> <code python>
 +x,y,z= 1,2,3 # Разные объект (но интерпретатор для оптимизации может автоматом сделать один)
 +x,y,z= [1,2,3] # Тут присвоили list и объект в памяти один, три ссылки на него
  
 +x is y # Ссылается ли x на y
 +sys.getrefcount([1,2,3]) # Кол-во ссылок на объект в памяти (удаляется при 0)
 </code> </code>
  
 +Так же работает позиционное присваивание. Если кол-во не совпадает будет ошибка, но если указать звездочку, то одна из переменных, автоматом станет списком
 <code python> <code python>
 +x,y= y,x # Так можно поменять местами значение переменных 
 +a,b,*c= 1,2,3,4,5
 </code> </code>
  
 +
 +==== Проверка типа ====
 <code python> <code python>
 +type(a) # Сообщение с указанием типа
  
 +if(type(x)== int):
 +  # Целое число
 +  
 +if isinstance(s, str):
 +  # Строка
 </code> </code>
  
-<code python> 
  
-</code>+==== Преобразование ==== 
 +  * bool(), float() 
 +  * int(<объект>, <система счисления>= 10) 
 +  * str(), str(<>,<кодировка>,<обработчик ошибок>
 +  * bytes(), bytes(<>,<кодировка>,<обработчик ошибок>
 +  * bytearray(), bytearray(<кодировка>,<обработчик ошибок>
 +  * list(), tuple()
  
 <code python> <code python>
 +int(7.5); int("0o71",8); int("A",16) # 7, 57, 10
 +float("Infinity"); float("-inf") # inf, -inf
 +</code>
  
 +
 +==== Удаление ====
 +<code python>
 +del x
 +del x,y
 </code> </code>
  
  
-==== Проверка типа ====+===== Операторы =====
  
 +==== Математические операторы ====
 +Стоит отменить:
 +  / - деление, **результатом всегда будет вещественный тип**
 +  // - деление с округлением вниз (слеши вместе)
 +  % - остаток от деления
 +  ** - возведение в степень
 +Работа с десятичными числами может быть неочевидной, для операций с фиксированной точностью стоит использовать модель **Decimal**\\
 +Decimal("3.0") + Decimal("4.0")\\
  
-==== Преобразование ==== 
  
 +==== Двоичные операторы ====
 +<code python>
 +# Инверсия(~), И(&), ИЛИ(|), Исключающее ИЛИ(^), сдвиг влево/вправо(<</>>)
 +</code>
  
-==== Удаление ==== 
  
 +==== Для работы с последовательностями ====
 +Конкатенация(+), повторение(*), проверка на вхождение(in), проверка на не вхождение(not in)\\
  
-===== Операторы ===== 
  
-====  ==== +==== Операторы присваивания ==== 
-====  ====+Комбинируется со всеми мат операторами.\\ 
  
 ===== Условные операторы и циклы ===== ===== Условные операторы и циклы =====
 +**Любой объект** может интерпретироваться как логическое выражение, в т.ч. списки, словари и т.д.\\
 +False будет только **пустое или нулевое** значение\\
 +В сравнении все обычно, присутствуют **and**, **or**, **not**, **is**, **!=, ==** и т.д.\\
  
  
-====  ==== +==== Ветвление ==== 
-====  ====+Условие можно помещать в круглые скобки, но не обязательно, даже не желательно видимо\\ 
 +Блок можно размещать в одно строке, даже несколько д-й разделенных ;\\
  
 +<code python>
 +if x % 2== 0:
 +  # chet
 +else:
 +  # ne chet
 +  
 +if var== "abc": #act1; act2
 +elif not var: #<empty value>
 +else: #act1; act2
 +</code>
  
 +
 +==== Цикл for ====
 +По сути это **foreach**, работает только с последовательностями\\
 +В конце можно добавить блок **else**, который выполнится (если не было **break**) после цикла\\
 +
 +<code python>
 +# Перебор словаря
 +arr= {"one":1, "two":2, "three":3}
 +for key in arr.keys(): # метод keys() возвращает перечень ключей
 +  print(key, arr[key])
 +else
 +  print("complete")
 +
 +# Конкретно для цикла можно обойтись и без keys()
 +for key in arr:
 +  print(key, arr[key])
 +
 +# Тут элементы списка кортежей
 +arr= [(1,2), (3,4)]
 +for a,b in arr:
 +  print(a,b)
 +</code>
 +
 +
 +==== range() и enumerate() ====
 +**range(<Начало>=0,<Конец>,<Шаг>=1)**- создается особый объект- **диапазон**, поддерживающий итераторы\\
 +Содержит два метода: 
 +  * **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
 +</code>
 +
 +**enumerate(<объект>, <start>=0)**- возвращает кортеж из **индекса и значения** текущего элемента, можно задать начало\\
 +Функция **не создает список, а возвращает итератор**\\
 +
 +<code python>
 +arr= [1,2,3,4,5,6,7]
 +for i, elem in enumerate(arr):
 +  arr[i] *= 2
 +</code>
 +
 +
 +==== Цикл while(), continue/break ====
 +Все так же, в цикле тоже есть ветка **else**\\
 +
 +<code python>
 +print("Input digit")
 +summ=0
 +while True:
 +    x= input("Input: ")
 +    if x== "stop":
 +        break
 +    summ += int(x)
 +print("Summ== ", summ)
 +</code>
develop/pyton/variable.1642841741.txt.gz · Последнее изменение: 2022/01/22 08:55 — admin