Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Встроенные функции и методы для работы с числамиСодержание книги
Поиск на нашем сайте
>>> int(7.5), int("71", 10), int("0o71", 8), int("0xA", 16) (7, 71, 57, 10) >>> int(), int("0b11111111", 2) (0, 255)
>>> float(7), float("7.1"), float("12.") (7.0, 7.1, 12.0) >>> float("inf"), float("-Infinity"), float("nan") (inf, -inf, nan) >>> float() 0.0
>>> bin(255), bin(1), bin(-45) ('0b11111111', '0b1', '-0b101101')
>>> oct(7), oct(8), oct(64) ('0o7', '0o10', '0o100')
>>> hex(10), hex(16), hex(255) ('0xa', '0x10', '0xff')
>>> round(0.49), round(0.50), round(0.51) (0, 0, 1) >>> round(1.49), round(1.50), round(1.51) (1, 2, 2) >>> round(2.49), round(2.50), round(2.51) (2, 2, 3) >>> round(3.49), round(3.50), round(3.51) (3, 4, 4)
>>> round(1.524, 2), round(1.525, 2), round(1.5555, 3) (1.52, 1.52, 1.556)
>>> abs(-10), abs(10), abs(-12.5) (10, 10, 12.5)
>>> pow(10, 2), 10 ** 2, pow(3, 3), 3 ** 3 (100, 100, 27, 27)
>>> pow(10, 2, 2), (10 ** 2) % 2, pow(3, 3, 2), (3 ** 3) % 2 (0, 0, 1, 1)
>>> max(1, 2, 3), max(3, 2, 3, 1), max(1, 1.0), max(1.0, 1) (3, 3, 1, 1.0)
>>> min(1, 2, 3), min(3, 2, 3, 1), min(1, 1.0), min(1.0, 1) (1, 1, 1, 1.0)
>>> sum((10, 20, 30, 40)), sum([10, 20, 30, 40]) (100, 100) >>> sum([10, 20, 30, 40], 2), sum([], 2) (102, 2)
>>> divmod(13, 2) # 13 == 6 * 2 + 1 (6, 1) >>> 13 // 2, 13 % 2 (6, 1) >>> divmod(13.5, 2.0) # 13.5 == 6.0 * 2.0 + 1.5 (6.0, 1.5) >>> 13.5 // 2.0, 13.5 % 2.0 (6.0, 1.5)
>>> (2.0).is_integer() True >>> (2.3).is_integer() False
>>> (0.5).as_integer_ratio() (1, 2) >>> (2.3).as_integer_ratio() (2589569785738035, 1125899906842624) 5.2. Модуль math. Математические функции import math
>>> import math >>> math.pi 3.141592653589793
>>> math.e 2.718281828459045
>>> math.degrees(math.pi) 180.0
>>> math.radians(180.0) 3.141592653589793
>>> math.sqrt(100), math.sqrt(25) (10.0, 5.0)
>>> math.ceil(5.49), math.ceil(5.50), math.ceil(5.51) (6, 6, 6)
>>> math.floor(5.49), math.floor(5.50), math.floor(5.51) (5, 5, 5)
>>> math.pow(10, 2), 10 ** 2, math.pow(3, 3), 3 ** 3 (100.0, 100, 27.0, 27)
>>> math.fabs(10), math.fabs(-10), math.fabs(-12.5) (10.0, 10.0, 12.5)
>>> math.fmod(10, 5), 10 % 5, math.fmod(10, 3), 10 % 3 (0.0, 0, 1.0, 1)
>>> math.factorial(5), math.factorial(6) (120, 720)
>>> sum([.1,.1,.1,.1,.1,.1,.1,.1,.1,.1]) 0.9999999999999999 >>> fsum([.1,.1,.1,.1,.1,.1,.1,.1,.1,.1]) 1.0 5.3. Модуль random. import random
>>> import random >>> random.random() 0.9753144027290991 >>> random.random() 0.5468390487484339 >>> random.random() 0.13015058054767736
>>> random.seed(10) >>> random.random() 0.5714025946899135 >>> random.seed(10) >>> random.random() 0.5714025946899135
>>> random.uniform(0, 10) 9.965569925394552 >>> random.uniform(0, 10) 0.4455638245043303
>>> random.randint(0, 10) >>> random.randint(0, 10)
>>> random.randrange(10) >>> random.randrange(0, 10) >>> random.randrange(0, 10, 2)
>>> random.choice("string") # Строка 'i' >>> random.choice(["s", "t", "r"]) # Список 'r' >>> random.choice(("s", "t", "r")) # Кортеж 't'
>>> arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> random.shuffle(arr) >>> arr [8, 6, 9, 5, 3, 7, 2, 4, 10, 1]
>>> random.sample("string", 2) ['i', 'r'] >>> arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> random.sample(arr, 2) [7, 10] >>> arr # Сам список не изменяется [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> random.sample((1, 2, 3, 4, 5, 6, 7), 3) [6, 3, 5] >>> random.sample(range(300), 5) [126, 194, 272, 46, 71]
Листинг 5.1. Генератор паролей # -*- coding: utf-8 -*- import random # Подключаем модуль random def passw_generator(count_char=8): arr = ['a','b','c','d','e','f','g','h','i','j','k','l','m', 'n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L', 'M','N','O','P','Q','R','S','T','U','V', 'W', 'X','Y','Z','1','2','3','4','5','6','7','8','9','0'] passw = [] for i in range(count_char): passw.append(random.choice(arr)) return "".join(passw)
# Вызываем функцию print(passw_generator(10)) # Выведет что-то вроде ngODHE8J8x print(passw_generator()) # Выведет что-то вроде ZxcpkF5O input() Строки и двоичные данные Листинг 6.1. Попытка изменить символ по индексу >>> s = "Python" >>> s[0] # Можно получить символ по индексу 'P' >>> s[0] = "J" # Изменить строку нельзя Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> s[0] = "J" # Изменить строку нельзя TypeError: 'str' object does not support item assignment
>>> type("строка") <class 'str'> >>> "строка".encode(encoding="cp1251") b'\xf1\xf2\xf0\xee\xea\xe0' >>> "строка".encode(encoding="utf-8") b'\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb0'
>>> s = bytes("стр str", "cp1251") >>> s[0], s[5], s[0:3], s[4:7] (241, 116, b'\xf1\xf2\xf0', b'str') >>> s b'\xf1\xf2\xf0 str'
>>> len("строка") >>> len(bytes("строка", "cp1251")) >>> len(bytes("строка", "utf-8"))
>>> s = bytearray("str", "cp1251") >>> s[0] = 49; s # Можно изменить символ bytearray(b'1tr') >>> s.append(55); s # Можно добавить символ bytearray(b'1tr7') Создание строки >>> str(), str([1, 2]), str((3, 4)), str({"x": 1}) ('', '[1, 2]', '(3, 4)', "{'x': 1}") >>> str(b"\xf1\xf2\xf0\xee\xea\xe0") "b'\\xf1\\xf2\\xf0\\xee\\xea\\xe0'"
>>> str(b"\xf1\xf2\xf0\xee\xea\xe0", "cp1251") 'строка'
>>> obj1 = bytes("строка1", "utf-8") >>> obj2 = bytearray("строка2", "utf-8") >>> str(obj1, "utf-8"), str(obj2, "utf-8") ('строка1', 'строка2') >>> str(obj1, "ascii", "strict") Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> str(obj1, "ascii", "strict") UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 0: ordinal not in range(128) >>> str(obj1, "ascii", "ignore") '1'
>>> 'строка', "строка", '"x": 5', "'x': 5" ('строка', 'строка', '"x": 5', "'x': 5") >>> print('Строка1\nСтрока2') Строка1 Строка2 >>> print("Строка1\nСтрока2") Строка1 Строка2
>>> print("Строка1\\nСтрока2") Строка1\nСтрока2 >>> print('Строка1\\nСтрока2') Строка1\nСтрока2
>>> "\"x\": 5", '\'x\': 5' ('"x": 5', "'x': 5")
>>> "string SyntaxError: EOL while scanning string literal
>>> "string1\ string2" # После \ не должно быть никаких символов 'string1string2' >>> ("string1" "string2") # Неявная конкатенация строк 'string1string2' >>> ("string1" + "string2") # Явная конкатенация строк 'string1string2'
>>> print("string\")
SyntaxError: EOL while scanning string literal >>> print("string\\") string\
>>> print('''Строка1 Строка2''') Строка1 Строка2 >>> print("""Строка1 Строка2""") Строка1 Строка2
>>> def test(): """Это описание функции""" pass
>>> print(test.__doc__) Это описание функции
>>> print("Строка1\nСтрока2") Строка1 Строка2 >>> print(r"Строка1\nСтрока2") Строка1\nСтрока2 >>> print(r"""Строка1\nСтрока2""") Строка1\nСтрока2
>>> print(r"C:\Python34\lib\site-packages") C:\Python34\lib\site-packages
>>> print("C:\\Python34\\lib\\site-packages") C:\Python34\lib\site-packages
>>> print(r"C:\Python34\lib\site-packages\")
SyntaxError: EOL while scanning string literal >>> print(r"C:\Python34\lib\site-packages\\") C:\Python34\lib\site-packages\\
>>> print(r"C:\Python34\lib\site-packages" + "\\") # Конкатенация C:\Python34\lib\site-packages\ >>> print("C:\\Python34\\lib\\site-packages\\") # Обычная строка C:\Python34\lib\site-packages\ >>> print(r"C:\Python34\lib\site-packages\\"[:-1]) # Удаление слэша C:\Python34\lib\site-packages\ Специальные символы >>> print("Этот символ \не специальный") Этот символ \не специальный
>>> print("Этот символ \\не специальный") Этот символ \не специальный Операции над строками >>> s = "Python" >>> s[0], s[1], s[2], s[3], s[4], s[5] ('P', 'y', 't', 'h', 'o', 'n')
>>> s = "Python" >>> s[10] Traceback (most recent call last): File "<pyshell#90>", line 1, in <module> s[10] IndexError: string index out of range
>>> s = "Python" >>> s[-1], s[len(s)-1] ('n', 'n')
>>> s = "Python" >>> s[0] = "J" # Изменить строку нельзя Traceback (most recent call last): File "<pyshell#94>", line 1, in <module> s[0] = "J" # Изменить строку нельзя TypeError: 'str' object does not support item assignment >>> s = "Python"
>>> s[:] # Возвращается фрагмент от позиции 0 до конца строки 'Python'
>>> s[::-1] # Указываем отрицательное значение в параметре <Шаг> 'nohtyP'
>>> "J" + s[1:] # Извлекаем фрагмент от символа 1 до конца строки 'Jython'
>>> s[:-1] # Возвращается фрагмент от 0 до len(s)-1 'Pytho'
>>> s[0:1] # Символ с индексом 1 не входит в диапазон 'P'
>>> s[-1:] # Получаем фрагмент от len(s)-1 до конца строки 'n'
>>> s[2:5] # Возвращаются символы с индексами 2, 3 и 4 'tho'
>>> len("Python"), len("\r\n\t"), len(r"\r\n\t") (6, 3, 6)
>>> s = "Python" >>> for i in range(len(s)): print(s[i], end=" ")
>>> s = "Python" >>> for i in s: print(i, end=" ")
>>> print("Строка1" + "Строка2") Строка1Строка2
>>> print("Строка1" "Строка2") Строка1Строка2
>>> s = "Строка1", "Строка2" >>> type(s) # Получаем кортеж, а не строку <class 'tuple'>
>>> s = "Строка1" >>> print(s + "Строка2") # Нормально Строка1Строка2 >>> print(s "Строка2") # Ошибка SyntaxError: invalid syntax
>>> "string" + str(10) 'string10'
>>> "-" * 20 '--------------------' >>> "yt" in "Python" # Найдено True >>> "yt" in "Perl" # Не найдено False >>> "PHP" not in "Python" # Не найдено True
Форматирование строк >>> "%s" % 10 # Один элемент '10' >>> "%s — %s — %s" % (10, 20, 30) # Несколько элементов '10 — 20 — 30'
>>> "%(name)s — %(year)s" % {"year": 1978, "name": "Nik"} 'Nik — 1978'
>>> print("%#o %#o %#o" % (0o77, 10, 10.5)) 0o77 0o12 0o12 >>> print("%#x %#x %#x" % (0xff, 10, 10.5)) 0xff 0xa 0xa >>> print("%#X %#X %#X" % (0xff, 10, 10.5)) 0XFF 0XA 0XA >>> print("%#.0F %.0F" % (300, 300)) 300. 300
>>> "'%d' — '%05d'" % (3, 3) # 5 — ширина поля "'3' — '00003'"
>>> "'%5d' — '%-5d'" % (3, 3) # 5 — ширина поля "' 3' — '3 '" >>> "'%05d' — '%-05d'" % (3, 3) "'00003' — '3 '"
>>> "'% d' — '% d'" % (-3, 3) "'-3' — ' 3'"
>>> "'%+d' — '%+d'" % (-3, 3) "'-3' — '+3'"
>>> "'%10d' — '%-10d'" % (3, 3) "' 3' — '3 '" >>> "'%3s''%10s'" % ("string", "string") "'string'' string'"
>>> "'%*s''%10s'" % (10, "string", "str") "' string'' str'"
>>> import math >>> "%s %f %.2f" % (math.pi, math.pi, math.pi) '3.141592653589793 3.141593 3.14'
>>> "'%*.*f'" % (8, 5, math.pi) "' 3.14159'"
>>> print("%s" % ("Обычная строка")) Обычная строка >>> print("%s %s %s" % (10, 10.52, [1, 2, 3])) 10 10.52 [1, 2, 3]
>>> print("%r" % ("Обычная строка")) 'Обычная строка'
>>> print("%a" % ("строка")) '\u0441\u0442\u0440\u043e\u043a\u0430'
>>> for i in range(33, 127): print("%s => %c" % (i, i))
>>> print("%d %d %d" % (10, 25.6, -80)) 10 25 -80 >>> print("%i %i %i" % (10, 25.6, -80)) 10 25 -80
>>> print("%o %o %o" % (0o77, 10, 10.5)) 77 12 12 >>> print("%#o %#o %#o" % (0o77, 10, 10.5)) 0o77 0o12 0o12
>>> print("%x %x %x" % (0xff, 10, 10.5)) ff a a >>> print("%#x %#x %#x" % (0xff, 10, 10.5)) 0xff 0xa 0xa
>>> print("%X %X %X" % (0xff, 10, 10.5)) FF A A >>> print("%#X %#X %#X" % (0xff, 10, 10.5)) 0XFF 0XA 0XA
>>> print("%f %f %f" % (300, 18.65781452, -12.5)) 300.000000 18.657815 -12.500000 >>> print("%F %F %F" % (300, 18.65781452, -12.5)) 300.000000 18.657815 -12.500000 >>> print("%#.0F %.0F" % (300, 300)) 300. 300
print("%e %e" % (3000, 18657.81452)) 3.000000e+03 1.865781e+04
>>> print("%E %E" % (3000, 18657.81452)) 3.000000E+03 1.865781E+04
>>> print("%g %g %g" % (0.086578, 0.000086578, 1.865E-005)) 0.086578 8.6578e-05 1.865e-05
>>> print("%G %G %G" % (0.086578, 0.000086578, 1.865E-005)) 0.086578 8.6578E-05 1.865E-05
>>> print("% %s" % ("- это символ процента")) # Ошибка Traceback (most recent call last): File "<pyshell#55>", line 1, in <module> print("% %s" % ("- это символ процента")) # Ошибка TypeError: not all arguments converted during string formatting >>> print("%% %s" % ("- это символ процента")) # Нормально % — это символ процента
Листинг 6.2. Пример использования форматирования строк # -*- coding: utf-8 -*- html = """<html> <head><title>%(title)s</title> </head> <body> <h1>%(h1)s</h1> <div>%(content)s</div> </body> </html>""" arr = {"title": "Это название документа", "h1": "Это заголовок первого уровня", "content": "Это основное содержание страницы"} print(html % arr) # Подставляем значения и выводим шаблон input()
>>> s = "1\t12\t123\t" >>> "'%s'" % s.expandtabs(4) "'1 12 123 '"
>>> s = "\t" >>> "'%s' — '%s'" % (s.expandtabs(), s.expandtabs(4)) "' ' — ' '" >>> s = "1234\t" >>> "'%s'" % s.expandtabs(4) "'1234 '"
>>> s = "12345\t123456\t1234567\t1234567890\t" >>> "'%s'" % s.expandtabs(4) "'12345 123456 1234567 1234567890 '"
>>> s = "str" >>> s.center(15), s.center(11, "-") (' str ', '----str----')
>>> s = "str" >>> "'%15s' '%-15s' '%s'" % (s, s, s.center(15)) "' str' 'str ' ' str '"
>>> s = "string" >>> s.center(6), s.center(5) ('string', 'string')
>>> s = "string" >>> s.ljust(15), s.ljust(15, "-") ('string ', 'string---------') >>> s.ljust(6), s.ljust(5) ('string', 'string')
>>> s = "string" >>> s.rjust(15), s.rjust(15, "-") (' string', '---------string') >>> s.rjust(6), s.rjust(5) ('string', 'string')
>>> "5".zfill(20), "123456".zfill(5) ('00000000000000000005', '123456') 6.5. Метод format() >>> print("Символы {{ и }} — {0}".format("специальные")) Символы { и } — специальные
>>> "{0} — {1} — {2}".format(10, 12.3, "string") # Индексы '10 — 12.3 — string' >>> arr = [10, 12.3, "string"] >>> "{0} — {1} — {2}".format(*arr) # Индексы '10 — 12.3 — string' >>> "{model} — {color}".format(color="red", model="BMW") # Ключи 'BMW — red' >>> d = {"color": "red", "model": "BMW"} >>> "{model} — {color}".format(**d) # Ключи 'BMW — red' >>> "{color} — {0}".format(2015, color="red") # Комбинация 'red — 2015'
>>> arr = [10, [12.3, "string"] ] >>> "{0[0]} — {0[1][0]} — {0[1][1]}".format(arr) # Индексы '10 — 12.3 — string' >>> "{arr[0]} — {arr[1][1]}".format(arr=arr) # Индексы '10 — string' >>> class Car: color, model = "red", "BMW"
>>> car = Car() >>> "{0.model} — {0.color}".format(car) # Атрибуты 'BMW — red'
>>> "{} — {} — {} — {n}".format(1, 2, 3, n=4) # "{0} — {1} — {2} — {n}" '1 — 2 — 3 — 4' >>> "{} — {} — {n} — {}".format(1, 2, 3, n=4) # "{0} — {1} — {n} — {2}" '1 — 2 — 4 — 3'
>>> print("{0!s}".format("строка")) # str() строка >>> print("{0!r}".format("строка")) # repr() 'строка' >>> print("{0!a}".format("строка")) # ascii() '\u0441\u0442\u0440\u043e\u043a\u0430'
>>> "'{0:10}' '{1:3}'".format(3, "string") "' 3' 'string'"
>>> "'{0:{1}}'".format(3, 10) # 10 — это ширина поля "' 3'"
>>> "'{0:<10}' '{1:>10}' '{2:^10}'".format(3, 3, 3) "'3 ' ' 3' ' 3 '"
>>> "'{0:=10}' '{1:=10}'".format(-3, 3) "'- 3' ' 3'"
>>> "'{0:=010}' '{1:=010}'".format(-3, 3) "'-000000003' '0000000003'"
>>> "'{0:0=10}' '{1:0=10}'".format(-3, 3) "'-000000003' '0000000003'" >>> "'{0:*<10}' '{1:+>10}' '{2:.^10}'".format(3, 3, 3) "'3*********' '+++++++++3' '....3.....'"
>>> "'{0:+}' '{1:+}' '{0:-}' '{1:-}'".format(3, -3) "'+3' '-3' '3' '-3'" >>> "'{0: }' '{1: }'".format(3, -3) # Пробел "' 3' '-3'"
>>> "'{0:b}' '{0:#b}'".format(3) "'11' '0b11'"
>>> "'{0:c}'".format(100) "'d'"
>>> import locale >>> locale.setlocale(locale.LC_NUMERIC, 'Russian_Russia.1251') 'Russian_Russia.1251' >>> print("{0:n}".format(100000000).replace("\uffa0", " ")) 100 000 000
>>> import locale >>> locale.setlocale(locale.LC_NUMERIC, "Russian_Russia.1251") 'Russian_Russia.1251' >>> print(locale.format("%d", 100000000, grouping = True)) 100 000 000 >>> locale.localeconv()["thousands_sep"] '\xa0'
>>> print("{0:,d}".format(100000000)) 100,000,000
>>> "'{0:d}' '{0:o}' '{0:#o}'".format(511) "'511' '777' '0o777'"
>>> "'{0:x}' '{0:#x}'".format(255) "'ff' '0xff'"
>>> "'{0:X}' '{0:#X}'".format(255) "'FF' '0XFF'"
>>> "'{0:f}' '{1:f}' '{2:f}'".format(30, 18.6578145, -2.5) "'30.000000' '18.657815' '-2.500000'"
>>> "'{0:.7f}' '{1:.2f}'".format(18.6578145, -2.5) "'18.6578145' '-2.50'"
>>> "'{0:e}' '{1:e}'".format(3000, 18657.81452) "'3.000000e+03' '1.865781e+04'"
>>> "'{0:E}' '{1:E}'".format(3000, 18657.81452) "'3.000000E+03' '1.865781E+04'"
>>> "'{0:.2e}' '{1:.2E}'".format(3000, 18657.81452) "'3.00e+03' '1.87E+04'"
>>> "'{0:g}' '{1:g}'".format(0.086578, 0.000086578) "'0.086578' '8.6578e-05'"
>>> "'{0:G}' '{1:G}'".format(0.086578, 0.000086578) "'0.086578' '8.6578E-05'"
>>> "'{0:%}' '{1:.4%}'".format(0.086578, 0.000086578) "'8.657800%' '0.0087%'"
|
||||
Последнее изменение этой страницы: 2016-06-23; просмотров: 284; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.52.111 (0.008 с.) |