# Convertendo de real para inteiro print 'int(3.14) =', int(3.14) # Convertendo de inteiro para real print 'float(5) =', float(5) # Calculo entre inteiro e real resulta em real print '5.0 / 2 + 3 = ', 5.0 / 2 + 3 # Inteiros em outra base print "int('20', 8) =", int('20', 8) # base 8 print "int('20', 16) =", int('20', 16) # base 16 # Operações com números complexos c = 3 + 4j print 'c =', c print 'Parte real:', c.real print 'Parte imaginária:', c.imag print 'Conjugado:', c.conjugate() s = 'Camel' # Concatenação print 'The ' + s + ' run away!' # Interpolação print 'tamanho de %s => %d' % (s, len(s)) # String tratada como sequência for ch in s: print ch # Strings são objetos if s.startswith('C'): print s.upper() # o que acontecerá? print 3 * s # 3 * s é consistente com s + s + s # Zeros a esquerda print 'Agora são %02d:%02d.' % (16, 30) # Real (número após o ponto controla as casas decimais) print 'Percentagem: %.1f%%, Exponencial:%.2e' % (5.333, 0.00314) # Octal e hexadecimal print 'Decimal: %d, Octal: %o, Hexadecimal: %x' % (10, 10, 10) musicos = [('Page', 'guitarrista', 'Led Zeppelin'), ('Fripp', 'guitarrista', 'King Crimson')] # Parâmetros identificados pela ordem msg = '{0} é {1} do {2}' for nome, funcao, banda in musicos: print(msg.format(nome, funcao, banda)) # Parâmetros identificados pelo nome msg = '{saudacao}, são {hora:02d}:{minuto:02d}' print msg.format(saudacao='Bom dia', hora=7, minuto=30) # Função builtin format() print 'Pi =', format(3.14159, '.3e') print 'Python'[::-1] # Mostra: nohtyP # importando o módulo string import string # O alfabeto a = string.ascii_letters # Rodando o alfabeto um caractere para a esquerda b = a[1:] + a[0] # A função maketrans() cria uma tabela de tradução # entre os caracteres das duas strings que ela # recebeu como parâmetro. # Os caracteres ausentes nas tabelas serão # copiados para a saída. tab = string.maketrans(a, b) # A mensagem... msg = '''Esse texto será traduzido.. Vai ficar bem estranho. ''' # A função translate() usa a tabela de tradução # criada pela maketrans() para traduzir uma string print string.translate(msg, tab) # importando o módulo string import string # Cria uma string template st = string.Template('$aviso aconteceu em $quando') # Preenche o modelo com um dicionário s = st.substitute({'aviso': 'Falta de eletricidade', 'quando': '03 de Abril de 2002'}) # Mostra: # Falta de eletricidade aconteceu em 03 de Abril de 2002 print s # importando o módulo UserString import UserString s = UserString.MutableString('Python') s[0] = 'p' print s # mostra "python" # String unicode u = u'Hüsker Dü' # Convertendo para str s = u.encode('latin1') print s, '=>', type(s) # String str s = 'Hüsker Dü' u = s.decode('latin1') print repr(u), '=>', type(u) # Uma nova lista: Brit Progs dos anos 70 progs = ['Yes', 'Genesis', 'Pink Floyd', 'ELP'] # Varrendo a lista inteira for prog in progs: print prog # Trocando o último elemento progs[-1] = 'King Crimson' # Incluindo progs.append('Camel') # Removendo progs.remove('Pink Floyd') # Ordena a lista progs.sort() # Inverte a lista progs.reverse() # Imprime numerado for i, prog in enumerate(progs): print i + 1, '=>', prog # Imprime do segundo item em diante print progs[1:] lista = ['A', 'B', 'C'] print 'lista:', lista # A lista vazia é avaliada como falsa while lista: # Em filas, o primeiro item é o primeiro a sair # pop(0) remove e retorna o primeiro item print 'Saiu', lista.pop(0), ', faltam', len(lista) # Mais itens na lista lista += ['D', 'E', 'F'] print 'lista:', lista while lista: # Em pilhas, o primeiro item é o último a sair # pop() remove e retorna o último item print 'Saiu', lista.pop(), ', faltam', len(lista) # Conjuntos de dados s1 = set(range(3)) s2 = set(range(10, 7, -1)) s3 = set(range(2, 10, 2)) # Exibe os dados print 's1:', s1, '\ns2:', s2, '\ns3:', s3 # União s1s2 = s1.union(s2) print 'União de s1 e s2:', s1s2 # Diferença print 'Diferença com s3:', s1s2.difference(s3) # Interseção print 'Interseção com s3:', s1s2.intersection(s3) # Testa se um set inclui outro if s1.issuperset([1, 2]): print 's1 inclui 1 e 2' # Testa se não existe elementos em comum if s1.isdisjoint(s2): print 's1 e s2 não tem elementos em comum' # Progs e seus albuns progs = {'Yes': ['Close To The Edge', 'Fragile'], 'Genesis': ['Foxtrot', 'The Nursery Crime'], 'ELP': ['Brain Salad Surgery']} # Mais progs progs['King Crimson'] = ['Red', 'Discipline'] # items() retorna uma lista de # tuplas com a chave e o valor for prog, albuns in progs.items(): print prog, '=>', albuns # Se tiver 'ELP', deleta if progs.has_key('ELP'): del progs['ELP'] # Matriz esparsa implementada # com dicionário # Matriz esparsa é uma estrutura # que só armazena os valores que # existem na matriz dim = 6, 12 mat = {} # Tuplas são imutáveis # Cada tupla representa # uma posição na matriz mat[3, 7] = 3 mat[4, 6] = 5 mat[6, 3] = 7 mat[5, 4] = 6 mat[2, 9] = 4 mat[1, 0] = 9 for lin in range(dim[0]): for col in range(dim[1]): # Método get(chave, valor) # retorna o valor da chave # no dicionário ou se a chave # não existir, retorna o # segundo argumento print mat.get((lin, col), 0), print # Matriz em forma de string matriz = '''0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0''' mat = {} # Quebra a matriz em linhas for lin, linha in enumerate(matriz.splitlines()): # Quebra a linha em colunas for col, coluna in enumerate(linha.split()): coluna = int(coluna) # Coloca a coluna no resultado, # se for diferente de zero if coluna: mat[lin, col] = coluna print mat # Some um nas dimensões pois a contagem começa em zero print 'Tamanho da matriz completa:', (lin + 1) * (col + 1) print 'Tamanho da matriz esparsa:', len(mat) print 0 and 3 # Mostra 0 print 2 and 3 # Mostra 3 print 0 or 3 # Mostra 3 print 2 or 3 # Mostra 2 print not 0 # Mostra True print not 2 # Mostra False print 2 in (2, 3) # Mostra True print 2 is 3 # Mostra False