Skip to content

Instantly share code, notes, and snippets.

@rochacbruno
Created October 24, 2011 22:12
Show Gist options
  • Select an option

  • Save rochacbruno/1310531 to your computer and use it in GitHub Desktop.

Select an option

Save rochacbruno/1310531 to your computer and use it in GitHub Desktop.
# # - -*- 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))
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'}
]
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