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

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


develop:pyton:digit

Это старая версия документа!


Числа, Cтроки, RegExp

Числа

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

  • Двоичное - начинаются с символов 0b (0B)
  • Восьмеричное - начинаются с символов 0о (0О)
  • Шестнадцатеричное - начинаются с символов 0x (0X)
  • Вещественное - содержит точку либо символ Е (е), есть модуль/функция Decimal, для фиксированной точности
  • Дробное - модуль/функция Fraction
  • Комплексное - <Вещественная часть> + <Мнимая>J (j)
0b101101 # 45
0o12 # 10
0xA # 10
.14 # 0.14
Fraction(1,2); Fraction("0.5") # дробь, одна вторая
 
# в python 3.6, для удобства, можно добавлять подчеркивание
0b1111_1111 # 255

Функции и методы

  • int(), float(), bin(), oct(), hex() - преобразование (целое, вещественное, двоичное, восьмеричное, шестнадцатеричное с-но)
  • round(<Число>,<Кол-во знаков после запятой>=0) - округление
  • abs() - абсолютное число
  • pow(<Число>, <Степень>, <Делитель>=) - возведение в степень
  • max(), min() - принимает список чисел через запятую
  • sum(<Последовательность>,<Нач значение>=0) - принимает списки, кортежи и т.д.
  • divmod(x,y) - возвращает кортеж из двух значений

Float так же поддерживает

  • is_integer() - если нет дробной части
  • as_integer_ration() - вернет два числа, целую и дробную части

Модуль math

Содержит константы типа pi, e и т.д.
Функции типа sin(), cos(), tan(), exp(), log(), pow(), fmod(), fsum(), factorialsи т.д.

Модуль random

  • random() - псевдослучайное число от 0.0 до 1.0
  • seed(<Параметр>, <версия>=2) - настраивает генератор на новую последовательность
  • choice(<Последовательность>) - случайный выбор из заданной последовательности (строка, список, кортеж и т.д.)
  • suffle() - перемешивает заданную последовательность, сохраняя изменения в объекте
  • uniform(<Начало>, <Конец>)/randint(<Начало>, <Конец>) - псевдослучайное вещественное/целое, в диапазоне
  • randrange(<Начало>=0, <Конец>, <Шаг>=1) - из диапазона, тут же его генерирует
random.random()
random.seed(10)
random.choice("String")
random.randrange(100,2)

Строки и двоичные данные

Длинна строки ограничивается лишь объемом ОЗУ
Как и все последовательности поддерживает обращение по индексу, конкатенацию, срез, проверка на вхождение и т.д.
Неизменяемый тип данных т.е. методы возвращают новую строку, а не сам элемент, который можно изменить.
Нулевой символ не является концом строки

  • str - Unicode строка, при выводе можно указывать кодировку
  • bytes - неизменяемая последовательность байт, элементы хранят значения 0..255, поддерживает большинство методов строк, доступ по индексу возвращает целое число, а не символ. Может содержать как однобайтовые так и многобайтовые символы
  • bytearray - изменяемая последовательность байт

Создание строки

Если преобразовывать из bytes/bytearray, то необходимо указывать кодировку в функции str(), так же, она принимает параметры исключений, третьим параметром
Разницы между двойными кавычками и апострофами нет
Спец символы экранируются слешем либо символом r перед строкой
Тройные кавычки (апострофы) сохраняют все форматирование, добавляются в документацию (func.doc), печатают все спец символы
Конкатенация может происходить слешем, плюсом, внутри скобок

Спец символы

Типа: n,r,t,v,a,b,f - перевод строки/каретки, табуляция/вертикальная, звонок/забой оО ?, перевод формата и т.д.
Пишутся после слеша с-но

Операции над строками

Обращение по индексу, если индекс отсутствует - исключение IndexError
В индексе можно указать отрицательное значение, тогда отсчет идет с конца (значение отнимается от длинны строки)

Полезен метод извлечения среза, все параметры необязательны, возвращается копия строки

[<Начало>:<Конец>:<Шаг>]
s= Python
s[:] # вся строка
s[::-1] # в обратном порядке
"J"+ s[1:] # замена первого символа
s[:-1] # удалить последний символ
s[0:1]; s[-1:] # получить первый (последний)
s[2:5] # часть строки

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

<Строка специального формата> % <Значение>
%[(<Ключ>)] [<Флаг>] [<Ширина>] [.<Точность>] <Тип преобразования>
 
"%s - %s - %s" % (10,20,30) # '10 - 20 - 30'
 
# <Ключ> - ключ словаря, в этом случае должен быть указан словарь
"%(name)s - %(year)s" % {"year": 1978, "name": "Nil"}
 
# <Флаг> - флаг преобразования (пробелы, нули, системы счисления)
# <Ширина> - мин ширина поля

Метод format()

В последующих версиях python знак % перестанет использоваться, рекомендуется использовать этот метод

<Строка> = <Строка спец формата>.format(*args, **kwargs)
{[<Поле>] [!<Функция>] [:<Формат>]} 
 
"{0} - {1} - {2}".format(10, 12.3, "String") # '10 - 12.3 String'

Форматируемые строки

В python 3.6 есть альтернатива методу format(), т.н. «Форматируемая строка», она обязательно предваряется символом f (F), и вставляет переменные у казанные места.. типа того

{[<Переменная>] [!<Функция>] [:<Формат>]} 
 
a= 10; b= 12.3; s= "string"
f"{a} - {b} - {s}"

Функции и методы строк

  • strip() - удаляет указанные символы в начале и конце строки (если не указано то пробелы удаляет)
  • l[r]strip() - тоже самое только вначале (в конце) строки
  • split(<Разделитель>=пробел, <Лимит>=) - разбивает на подстроки
  • rsplit() - справа на лево
  • splitlines(<False>- не включать разделить в результат) - разбивает по строкам (символ переноса строки)
  • join() - собирает строку «<строка> = <разделитель>.join(<последовательность>)»
" => ".join(["one", "two", "three"]) # 'one => two => three'

Локаль

 
 

Регистр символов

 
 

Функции и методы символов

 
 

Поиск и замена

 
 

Проверка типа

 
 

bytes

 
 

bytearray

 
 

Преобразование

 
 

Шифрование

 
 

Регулярные выражения

Синтаксис

 
 

Поиск первого совпадения

 
 

Поиск всех совпадений

 
 

Замена в строке

 
 

Функции и методы

 
 
develop/pyton/digit.1642936214.txt.gz · Последнее изменение: 2022/01/23 11:10 — admin