Eis a lista de funções predefinidas do Python atualmente.
Segue-se a exposição de algumas dessas funções de âmbito mais geral. As primeiras funções já foram apresentadas no artigo anterior.
As funções chr() e ord() convertem uma letra ASCII no seu valor numérico e vice-versa.
>>> chr(65) 'A' >>> ord('B') 66 >>> chr(225) '\xe1'
As funções complex(), str(), int(), long() e float() convertem string para número ou vice-versa.
A função hex() converte um inteiro para o formato hexadecimal.
A função oct() converte um inteiro para o formato octal.
>>> complex("5+2j") (5+2j) >>> str(3+6) '9' >>> int("4") 4 >>> float("3.14") 3.14 >>> hex(1234) '0x4d2' >>> oct(123) '0173'
divmod(a,b) calcula a divisão inteira e o resto da divisão inteira entre dois números (a//b,a%b).
>>> divmod(7,3) (2, 1)
enumerate(sequence, start=0) devolve uma sequência enumerada
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
A função eval() é semelhante à função homónima do Javascript: avalia uma expressão contida numa string.
>>> x = 1 >>> print eval('x+1')
O comando exec() permite executar código contido numa string. A função execfile() executa código contido num ficheiro.
>>> exec("x=3") >>> print x 3
As funções file() e open() permitem criar e/ou abrir um ficheiro, mas a última é preferível.
A função format(value[, format_spec]) converte um valor para um formato definido por format_spec (ver documentação).
>>> s = "python string!" b = "i am a {0}".format(s) >>> a = "i am a %s" % s print "--{:^30}--".format(s) >>> b = "i am a {0}".format(s) >>> print a '{0}{1}{0}'.format('abra', 'cad') i am a python string! >>> print b i am a python string! >>> print "--{:^30}--".format(s) 'Coordinates: {latitude}, {longitude}'.format(**coord) -- python string! -- >>> >>> '{2}, {1}, {0}'.format('a', 'b', 'c') 'c, b, a' >>> >>> '{0}{1}{0}'.format('abra', 'cad') 'abracadabra' >>> >>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W') 'Coordinates: 37.24N, -115.81W' >>> >>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'} >>> 'Coordinates: {latitude}, {longitude}'.format(**coord) 'Coordinates: 37.24N, -115.81W'
globals() devolve um dicionário (objeto JSON) com a tabela de símbolos globais.
locals() devolve um dicionário (objeto JSON) com a tabela de símbolos locais.
>>> globals() {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None} >>> locals() {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
len() devolve o número de elementos de um objeto.
>>> len("Olá") 3 >>> len([1,3,5]) 3 >>> len(globals()) 4
map(function, iterable, …) aplica uma função aos valores de um iterável.
max(iterable[, key]) ou max(arg1, arg2, *args[, key]) determinam o máximo de um conjunto de elementos.
min(iterable[, key]) ou min(arg1, arg2, *args[, key]) determinam o máximo de um conjunto de elementos.
sum(iterable[, start]) soma os elementos de um iterável.
>>> map(lambda x: 2*x, [1,2,4,6,2,3]) [2, 4, 8, 12, 4, 6] >>> max([1,2,4,6,2,3]) 6 >>> min([1,2,4,6,2,3]) 1 >>> sum([1,2,4,6,2,3]) 18
next(iterator[, default]) obtém o próximo elemento de um iterador.
pow(x, y[, z]) calcula a potÊncia de x elevado a y módulo z, de forma eficiente. z é opcional, e nesse caso pode calcular-se x ** y.
>>> pow(2,3,5) 3 >>> pow(2,3) 8 >>> 2**3 8
print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout) imprime objetos num fluxo (stream).
range() cria um intervalo de inteiros.
>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(5,10) [5, 6, 7, 8, 9] >>> range(0, -10, -1) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
O Python foi criado com o nome de um grupo de animadores britânicos, tal como se percebe pelo exemplo da função raw_input().
>>> s = raw_input('--> ') --> Monty Python's Flying Circus >>> s "Monty Python's Flying Circus"
reduce(function, iterable[, initializer]) aplica uma função de dois arguemntos, iterativamente a um iterável. Por exemplo, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calcula ((((1+2)+3)+4)+5).
>>> def soma(x,y): ... return x+2*y ... >>> reduce(soma, [1, 2, 3, 4, 5]) 29
round() arredonda um número.
>>> round(3.14) 3.0 >>> round(3.14,1) 3.1 >>> round(3.7) 4.0
frozenset, list, set, tuple e dict são funções que permitem criar iteráveis ou coleções.
sorted(iterable[, cmp[, key[, reverse]]]) ordena um iterável.
>>> sorted( [1,2,4,6,2,3], cmp=lambda x,y: cmp(x, y) ) [1, 2, 2, 3, 4, 6] >>> sorted( [1,2,4,6,2,3], cmp=lambda x,y: cmp(y, x) ) [6, 4, 3, 2, 2, 1]
tuple([iterable]) cria um tuplo a partir de um iterável.
>>> tuple("xpto") ('x', 'p', 't', 'o')
A função type(object) obtém o tipo de um objeto.
>>> type("xpto") <type 'str'> >>> type([1,2,4,6,2,3]) <type 'list'> >>> type(3+6j) <type 'complex'>
A função type(name, bases, dict) pode ser usada com 3 prâmetros. Nesse caso cria uma classe. As duas instruções seguintes são equivalentes.
>>> class X(object): ... a = 1 ... >>> X = type('X', (object,), dict(a=1))
unichr(i) devolve a string Unicode, cujo código é i.
zip([iterable, …]) cria uma lista de tuplos emparelhados pelo índice dos argumentos. A lista gerada tem o comprimento do iterável mais curto.
>>> zip([1,2,3],"abc") [(1, 'a'), (2, 'b'), (3, 'c')] >>> zip([1,2,3,4,5,6],"xpto") [(1, 'x'), (2, 'p'), (3, 't'), (4, 'o')]