Created
October 24, 2011 22:12
-
-
Save rochacbruno/1310531 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # # - -*- coding: utf-8 -*- | |
| # # - iteraveis | |
| # # - objetos que permitem iteração em seus elementos | |
| # # - arrays ou listas (ordenados e indexados) | |
| # # - tipos | |
| print "*--iteráveis--*" | |
| print list, tuple, set, str, bytearray, file | |
| # # - dicionarios não são iteraveis, mas podem ser através das | |
| # # - listas de chaves(keys) e valores(values) items() | |
| # # - exemplo | |
| print "\n*--listas--*" | |
| ordenado = [1, 2, 3, 4, 5] | |
| desordenado = [3, 5, 1, 2, 4] | |
| print ordenado, desordenado | |
| # # - index | |
| print "\n*--indices--*" | |
| print "Acessando item do índice 3:", ordenado[3] # ordenado(3) | |
| # exception IndexOutofRange | |
| try: | |
| print ordenado[30] | |
| except: | |
| print "Deu erro" | |
| # # - slicing (ultimo não incluso) | |
| print "\n*--Fatiamento e cópia--*" | |
| print "Fatiando da posicao 2 até 4:", ordenado[2:4] | |
| print "Fatianfo da posicao inicial até 3:", ordenado[:3] | |
| print "da posicao final até 1 reversamente:", ordenado[-1] | |
| print "Fazendo uma cópia:", ordenado[:] | |
| a = [1, 2] | |
| b = a[:] # raw copy | |
| print a | |
| print b | |
| b.append(1) | |
| print id(a) | |
| print id(b) | |
| # # - del | |
| print ordenado | |
| ordenado.append(6) | |
| ordenado.append(6) | |
| print ordenado | |
| ordenado.remove(6) | |
| ordenado.remove(6) | |
| print ordenado | |
| del ordenado[0] | |
| print ordenado | |
| ordenado.insert(0, 1) | |
| print ordenado | |
| # # - query | |
| print "\n*--Query--*" | |
| print "Existe 2 em ordenado?", 2 in ordenado | |
| print "Existe 10 em ordenado?", 10 in ordenado | |
| # # - iterando | |
| print "\n*--Iterações--*" | |
| for item in ordenado: | |
| print "Iterando o item", item | |
| # # - iterando e ordenando | |
| print "\n*--Ordenando--*" | |
| print desordenado | |
| print sorted(desordenado) | |
| for item in sorted(desordenado): | |
| print "Item ordenado:", item | |
| nomes = ['aroldo', 'Humberto'] | |
| print sorted(nomes) | |
| # # - inversao | |
| print "\n*--inversão--*" | |
| print ordenado | |
| print reversed(ordenado) | |
| for item in reversed(ordenado): | |
| print "Invertido:", item | |
| # # - verificando tamanho | |
| print "\n*--Tamanho--*" | |
| print "Ordenado contém", len(ordenado), "elementos." | |
| # # - aninhamento | |
| print "\n*--Aninhamento--*" | |
| matriz = [(1, "Python"), (2, "PHP"), (3, "Ruby"), (4, "Lisp")] | |
| # # - slice | |
| print matriz[0][1], "é melhor que", matriz[2][1] | |
| # # - iterando | |
| #item1, item2 = (1, "Python") | |
| for cod, valor in matriz: | |
| print "Cod:", cod, "linguagem:", valor | |
| # # - enumerando | |
| print "\n*--Enumerando--*" | |
| frutas = ["banana", "maça", "pêra", "uva", "caqui"] | |
| # for f in frutas: | |
| # print f | |
| print enumerate(frutas) | |
| for ordem, fruta in enumerate(frutas, 1): | |
| print "ordem:", ordem, "produto:", fruta | |
| cont = 1 | |
| for f in frutas: | |
| print cont, f | |
| cont += 1 | |
| # # - zipando | |
| print "\n*--Combinando listas com zip()--*" | |
| print ordenado | |
| print frutas | |
| print zip(ordenado, frutas) | |
| print zip(range(5), frutas) | |
| print range(10) # xrange | |
| # # - operacoes | |
| print "\n*--Soma de listas--*" | |
| print "Soma", ordenado + desordenado + ["nome", {}] | |
| # # - unpacking | |
| print "\n*--unpacking com funções--*" | |
| def mult(x, y): | |
| return x * y | |
| print mult(x="Bruno ", y=4) | |
| print ordenado | |
| print "mult dos dois primeiros itens:", mult(ordenado[0], ordenado[1]) | |
| print "mult dos dois primeiros itens:", mult(*ordenado[:2]) | |
| l = ["Bruno ", 8] | |
| print mult(*l) | |
| # # - while | |
| print "\n*--while--*" | |
| print ordenado | |
| while ordenado: | |
| print ordenado.pop() | |
| print ordenado | |
| # # - Dicionários | |
| print "\n*--Dicionários--*" | |
| user = dict(nome="Bruno", sobrenome="Rocha", senha=1234) | |
| print user | |
| print "Chaves:", user.keys() | |
| print "Valores:", user.values() | |
| print zip(user.keys(), user.values()) | |
| print "Itens:", user.items() | |
| print "Itens:", user.iteritems() | |
| print "\n*--Utilizando chave/valor--*" | |
| for chave in user: | |
| print "Coluna:", chave, "valor:", user[chave] | |
| print "\n*--Utilizando unboxing de tupla--*" | |
| for chave, valor in user.items(): | |
| print "Coluna:", chave, "valor:", valor | |
| print "\n*--list2dict--*" | |
| chaves = ["nome", "telefone", "email"] | |
| valores = ["Bruno", "5555-5555", "test@test.com"] | |
| print chaves | |
| print valores | |
| print zip(chaves, valores) | |
| print dict(zip(chaves, valores)) | |
| # web2py - db.execute_sql('select * from tabela') | |
| print '\n\n*--strings--*' | |
| nome = "Bruno" | |
| print nome[2], nome[3:] | |
| print "Br" in nome | |
| for letra in nome: print letra.upper() | |
| print 'String separada por aspa simples' | |
| print 'Caixa d\'agua (escaping)' | |
| print "Caixa d'agua (escaping)" | |
| print "Usando aspa dupla" | |
| print """\nstring | |
| multilinhas | |
| com 3 aspas | |
| pode usar | |
| 3 simples se | |
| preferir\n""" | |
| print ("Também pode separar" | |
| "string " | |
| "utilizando parenteses" | |
| 'e mixando' | |
| ''' o tipo de aspa, ''' | |
| "quebra de linha\n" | |
| 'tem que ser explicita com \\n' | |
| '\n\t tabulação \t também \n') | |
| print "*--strings são iteraveis--*" | |
| for letra in "tamangadapio": | |
| print letra.upper() * 2 | |
| print "\n*--possuem queries--*" | |
| fruta = "banana" | |
| print 'na' in fruta | |
| if 'na' in fruta: | |
| print "Yes nós temos", fruta | |
| print "\n*--e métodos especificos da classe str--*" | |
| print "Maiscula", fruta.upper() | |
| print "bruno".upper() | |
| print "Capitalização", fruta.capitalize() | |
| frase = 'bem vindos a o curso de python' | |
| print frase.title().replace('A', 'a') | |
| print "Substituição", fruta.replace('n', 't').upper() | |
| print "Completando zeros", str(340).zfill(20) | |
| print "\n*--Dividindo strings--*" | |
| con_string = "localhost;SQL/database;admin;1234;10" | |
| server, database, user, passwd, pool_size = con_string.split(';') | |
| print con_string.split(';') | |
| print server | |
| print database | |
| print user | |
| print passwd | |
| print pool_size | |
| carros = ['fusca', 'brasilia', 'tl', 'sp2'] | |
| print carros | |
| carros = "fusca,brasilia,tl,sp2,ferrari".split(',') | |
| print carros | |
| print "\n*--Juntando itens de lista em string--*" | |
| lista = [server, database, user, passwd, pool_size] | |
| print lista | |
| print ';'.join(lista) | |
| nome = "Bruno" | |
| ini ,fim = nome[:3], nome[3:] | |
| print ini, fim | |
| frase = "Ola meu nome e Bruno, programo em Python, e web2py" | |
| print frase.split(',') | |
| print frase.partition(',') | |
| print frase.partition('Bruno') | |
| print "\n*--Concatenação de string--*" | |
| print "Concatenando com + " + str(34) + " ,numéricos precisam de conversão!" | |
| print "Virgula", "funciona apenas", "com print", 34, "e não requer conversão" | |
| var = ("Virgula", "funciona apenas", "com print", 34, "e não requer conversão") | |
| print "em atribuições virgulas formam tuplas:\n", var | |
| print "\n*--Interpolação e formatação--*" | |
| nome, curso, versao = "Bruno", "Python", 2.7 | |
| print "Meu nome é %s" % nome | |
| print "Meu nome é %s e eu programo em %s" % (nome, curso) | |
| print "Meu nome é %s e eu programo em %s, versão %s" %(nome, curso, versao) | |
| print "Meu nome é %s e eu programo em %s, versão %d" % (nome, curso, versao) | |
| print "Meu nome é %s e eu programo em %s, versão %.3i" % (nome, curso, versao) | |
| print "Meu nome é %s e eu programo em %s, versão %f" % (nome, curso, versao) | |
| print "Meu nome é %s e eu programo em %s, versão %g" % (nome, curso, versao) | |
| print "Meu nome é %s e eu programo em %s, versão %.2f" % (nome, curso, versao) | |
| dados = dict(nome="Linus", lingua="C", ver=3.2 ) | |
| print "Meu nome é %(nome)s eu programo em %(lingua)s, versão %(ver).2f" % dados | |
| print "\n*--Fazendo isso direito (Python 2.7+ 3.0)--*" | |
| print "\nhttp://bit.ly/pep3101 | http://bit.ly/fmtsyntax | " | |
| print "Meu nome é {} e eu programo em {}, versão {}".format(nome, curso, versao) | |
| print "Meu nome é {0} e eu programo em {1}, versão {2}" \ | |
| .format(nome, curso, versao) | |
| print "Meu nome é {n} e eu programo em {l}, versão {v}" \ | |
| .format(n="Guido", l="PHP", v="5.2") | |
| dados = dict(nome="Linus", lingua="C", ver=3.0 ) | |
| print "Meu nome é {nome} eu programo em {lingua}, versão {ver}".format(**dados) | |
| print "Meu nome é {0[nome]} eu programo em {0[lingua]}, versão {0[ver]:f}" \ | |
| .format(dados) | |
| print "Meu nome é {0[nome]} eu programo em {0[lingua]}, versão {0[ver]:.3f}" \ | |
| .format(dados) | |
| # print "\n*--Template strings--*" | |
| from string import Template | |
| s = Template("Meu nome é $nome e eu programo em $lingua, versão $ver") | |
| print dados | |
| print s.template | |
| print s.substitute(**dados) | |
| print '\n*--Datas--*' | |
| from datetime import datetime | |
| now = datetime.now() | |
| print now | |
| print now.year, now.month, now.day | |
| print "São Paulo, {0.day} de {0.month} de {0.year}".format(now) | |
| print now | |
| print now.strftime("%d/%m/%Y") | |
| print now.strftime("%d/%m/%Y %H:%M:%S (%f)") | |
| # # -http://docs.python.org/library/datetime.html# -strftime-and-strptime-behavior | |
| print '\n*--String para time--*' | |
| dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") | |
| print dt.day | |
| print dt.year | |
| print dt.month | |
| # print '\n*--Escrevendo em arquivos--*' | |
| # f = open('arquivo.txt', 'w') | |
| # f.write("Escrevendo em arquivos") | |
| # f.flush() | |
| # f.close() | |
| # print '\n*--Append em arquivos--*' | |
| # f = open('arquivo.txt', "a") | |
| # f.write("\nIncluindo uma linha") | |
| # f.flush() | |
| # f.close() | |
| # print '\n*--Lendo arquivos--*' | |
| # f = open('arquivo.txt', 'r') | |
| # print f.read() | |
| # print '\n*--Lendo uma linhas--*' | |
| # f = open('arquivo.txt', 'r') | |
| # print f.readline() | |
| # print '\n*--Loop--*' | |
| # f = open('arquivo.txt', 'r') | |
| # for line in f: # -f.readlines() | |
| # print line | |
| # print '\n*--Lendo Binários--*' | |
| # f = open('Koala.jpg', 'rb') | |
| # print '\n*--Escrevendo Binários--*' | |
| # n = open('Koala_copy.jpg', 'wb') | |
| # n.write(f.read()) | |
| # n.flush() | |
| # n.close() | |
| # print '\n*--Fazendo isso direito!--*' | |
| # with open('arquivo.txt', 'r') as f: | |
| # for line in f: | |
| # print line | |
| # with open('Koala.jpg', 'rb') as f, \ | |
| # open('Koala_copy2.jpg', 'wb') as n: | |
| # n.write(f.read()) | |
| # # -print dir(dt) | |
| # # -from pprint import pprint | |
| # # -pprint(dir(dt)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| parsed = # seu objetivo é ler o arquivo 'estoque.csv' e criar uma lista de dicionarios | |
| print parsed[0]['item'] | |
| print parsed[1]['categoria'] | |
| print parsed | |
| [ | |
| {'item': 'Farinha de trigo', 'categoria': 'itens b\xc3\xa1sicos', 'quantidade': '32.7', ' unidade': 'kilo'}, | |
| {'item': 'Palmito', 'categoria': 'enlatados', 'quantidade': '10', 'unidade': 'kilo'}, | |
| {'item': 'Cebola', 'categoria': 'vegetais', 'quantidade': '5', 'unidade': 'duzia'}, | |
| {'item': 'Caixa p/ Pizza Grande', ' categoria': 'Embalagens', 'quantidade': '150', 'unidade': 'Unidade'}, | |
| {'item': 'Coca-Cola (lata)', 'categoria': 'bebidas', 'quantidade': '20', 'unidade': 'Caixas/Pacotes'} | |
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| item | categoria | unidade | quantidade | |
|---|---|---|---|---|
| Farinha de trigo | itens básicos | kilo | 32.7 | |
| Palmito | enlatados | kilo | 10 | |
| Cebola | vegetais | duzia | 5 | |
| Caixa p/ Pizza Grande | Embalagens | Unidade | 150 | |
| Coca-Cola (lata) | bebidas | Caixas/Pacotes | 20 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment