minicurso básico de python - pythonday
DESCRIPTION
Mini-Curso minitstrado no Python Day (12/04/14) na Universidade Estadual de Feira de SantanaTRANSCRIPT
Minicurso Básico de Python - PythonDay
Cronograma
❏ Introdução ao Python❏ Estruturas de controle e de
repetição❏ Tipos básicos❏ Funções e arquivos
Histórico
❏ Guido van Rossum❏ Versão 1.0 em 1994❏ Principal objetivo
❏ Aumentar a produtividade do programador
❏ Hoje o Python está na versão 3.0
Shell
Script
Estruturas de Controle e rep.
1. Condições1.1. if1.2. else1.3. elif
2. Repetições2.1. while2.2. Contador2.3. Acumulador2.4. Interrupção2.5. for
Estruturas de Controle e rep.
print (“Olá”)print (“Tudo bem?”)
Condições - if
Estruturas de Controle e rep.
Condições - if
Estruturas de Controle e rep.
# Ler 2 valores inteiros e imprimir o maior deles.
Condições - if
a = int(input(“Digite a: ”))b = int(input(“Digite b: ”))if a > b:print (“A é o maior!”)
if b > a:print (“B é o maior!”)
Estruturas de Controle e rep.
# Ler 2 valores inteiros e imprimir o maior deles.
Condições - else
a = int(input(“Digite a: ”))b = int(input(“Digite b: ”))if a > b:print (“A é o maior!”)
else:print (“B é o maior!”)
Estruturas de Controle e rep.
# Uma empresa de internet discada cobra R$ 0,20 centavos por pulso, quando a conta vem abaixo de 200 minutos. Entre 200 e 400 min, o preço é de R$ 0,18. Acima de 400 min o preço cai para R$ 0,15. Calcule o preço de uma conta.
Condições - Estruturas aninhadas
Estruturas de Controle e rep.
m = int(input(“Digite m: ”))if m < 200:preco = 0.20
else:if m <= 400:preco = 0.18
else:preco = 0.15
print (“Conta: %d” % (m*preco))
Condições - Estruturas aninhadas
Estruturas de Controle e rep.
# A empresa de internet criou uma promoção onde, contas acima de 800 minutos pagam R$ 0,08 o minuto.
Condições - Estruturas aninhadas
Estruturas de Controle e rep.
Condições - Estruturas aninhadas
m = int(input(“Digite m: ”))if m < 200:
preco = 0.20else:
if m <= 400:preco = 0.18
else:if m <= 800:
preco = 0.15else:
preco = 0.08print (“Conta: %d” % (m*preco))
Estruturas de Controle e rep.
# A cláusula elif substitui um else if seguido.
Condições - elif
m = int(input(“Digite m: ”))if m < 200:
preco = 0.20elif m <= 400:
preco = 0.18elif m <= 800:
preco = 0.15else:
preco = 0.08print (“Conta: %d” % (m*preco))
Estruturas de Controle e rep.
Exercícios!
Estruturas de Controle e rep.
# Imprimindo de 1 a 3
Repetições
# Modo Simples
print (1)print (2)print (3)
Estruturas de Controle e rep.
# Imprimindo de 1 a 3
Repetições
# Utilizando uma variável
x = 1print (x)x = 2print (x)x = 3print (x)
Estruturas de Controle e rep.
# Imprimindo de 1 a 3
Repetições
# Incrementando a variável
x = 1print (x)x = x + 1print (x)x = x + 1print (x)
Estruturas de Controle e rep.
# Imprimindo de 1 a 3
Repetições - while
# Usando while
x = 1while x <= 3:
print (x)x = x + 1
Estruturas de Controle e rep.
# Imprimir os números pares entre 0 e um número fornecido usando if.
Repetições - Contadores
fim = int(input(“Digite um número: ”))n = 0while n <= fim:
if n % 2 == 0:print (“N: %d” % (n))
n = n + 1
Estruturas de Controle e rep.
# Cálculo da soma de dez números inteiros.
Repetições - Acumulador
n = 0soma = 0while n < 10:
num = int(input(“Digite um número: ”)soma = soma + numn = n + 1
print (“Total: %d” % (soma))
Estruturas de Controle e rep.
# Calcule a soma dos números inteiros até ser digitado 0 (ZERO).
Repetições - Interrupção
soma = 0while True:
num = int(input(“Digite um número: ”)if num == 0:
breaksoma = soma + num
print (“Total: %d” % (soma))
Estruturas de Controle e rep.
Repetições - For*
for letra in ‘aeiou’:print (letra)
>>>aeiou
texto = ‘aeiou’k = 0while k < len(texto):
letra = texto[k]print (letra)k = k + 1
>>>aeiou
Estruturas de Controle e rep.
Exercícios!
Tipos básicos
1. Numeros1.1. int1.2. float1.3. complex
2. String
4. Conjuntos4.1. Lista4.2. Tupla4.3. Dicionários
3. Boolean
Tipos básicos
>>> type(1)<type ‘int’>>>> type(7.5)<type ‘float’>>>> type(1e5)<type ‘float’>>>> type(20+5j)<type ‘complex’>>>>
Números
Tipos básicos
>>> spam = “eggs”>>> type(spam)<type ‘str’>>>> spam + “ bacon”‘eggs bacon’>>> spam[0]Traceback (most recent call last):
File “<stdin>”, line 1, in <module>TypeError: ‘str’ object does not supprt item assignment
Strings
Tipos básicos
>>> type(True)<type ‘bool’>>>> type(False)<type ‘bool’>>>> bool(0)False>>> bool(0.0)False>>> bool(0+0j)False>>> bool(“”)False
>>> bool([])False>>> bool({})False>>> bool(())False
Boolean
Tipos básicos
Listas
Tipos básicos
Listas
>>> type([])<type ‘list’>>>> spam = [‘eggs’, ‘bacon’]>>> spam[0]‘eggs’>>> spam[1] = ‘spam’>>> spam[‘eggs’, ‘spam’]>>> len(spam)2
Tipos básicos
Listas
>>> spam[2] = 1Traceback (most recent call last):
File "<stdin>", line 1, in <module>IndexError: list assignment index out of range>>> spam.append(1)>>> spam[2]1>>> spam[‘eggs’, ‘spam’, 1]>>> len(spam)3
Tipos básicos
Tuplas
>>> type(())<type ‘tuple’>>>> spam = (‘eggs’, ‘bacon’)>>> spam[0]‘eggs’>>> spam[1] = ‘spam’Traceback (most recent call last):
File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment
Tipos básicos
Tuplas
>>> spam(‘eggs’, ‘bacon’)>>> spam.append(1)Traceback (most recent call last):
File "<stdin>", line 1, in <module>AttributeError: 'tuple' object has no attribute 'append'>>> spam = spam + (1,)>>> spam(‘eggs’, ‘bacon’, 1)
Tipos básicos
Dicionário
Tipos básicos
Dicionário
>>> type({})<type ‘dict’>>>> spam = {‘nome’:’João’,’idade’:32,’apelidos’:[‘jô’, ‘joãozinho’]}>>> spam[nome]‘João’>>> spam[idade] = 33>>> spam{'idade': 33, 'apelidos': ['joão', 'joãozinho'], 'nome': 'João'}
Tipos básicos
Dicionário
>>> spam[‘endereco’] = ‘Rua J’>>> spam{'idade': 33, 'endere\xc3\xa7o': 'Rua J', 'apelidos': ['j\xc3\xb4', 'jo\xc3\xa3ozinho'], 'nome': 'Jo\xc3\xa3o'}
Tipos básicos
Mais Exercícios!
Funções e arquivos
1. Funções1.1. Funções1.2. Escopo de
variável1.3. Números
aleatórios
1. Arquivos1.1. Leitura e
escrita em arquivos.
Funções e arquivos
# Utilizamos def para definir uma função e return para devolver algum valor.
Funções
def ehpar(x):return x % 2 == 0
>>> ehpar(20)True>>> ehpar(19)False
Funções e arquivos
# Defina uma função fatorial
Funções
def fat(n):f = 1while n > 0:
f = f * nn = n - 1
return f
>>> for i in range(3): print( fat(i) )112
Funções e arquivos
# a = 5 e a = 7 são variáveis diferentes!
Funções - Escopo de variáveis
a = 5
def muda_e_imprime():a = 7print (“a dentro da funcao: %d” %a)
print (“antes da funcao: %d” %a)muda_e_imprime()print (“depois da funcao: %d” %a)
Funções e arquivos
# a = 5 é colocada como global e modificada dentro da função.
Funções - Escopo de variáveis
a = 5
def muda_e_imprime():global aa = 7print (“a dentro da funcao: %d” %a)
print (“antes da funcao: %d” %a)muda_e_imprime()print (“depois da funcao: %d” %a)
Funções e arquivos
# É necessário importar o módulo random
Funções - Números aleatórios
>>> import random>>> random.randomint(1, 50)13
>>> nomes = [‘Diego’, ‘Amanda’, ‘Dilan’, ‘Gaby’]>>> random.choice(nomes)‘Amanda’
>>> random.shuffle(nomes)[‘Amanda’, ‘Gaby’, ‘Dilan’, ‘Diego’]
Funções e arquivos
FUUUUUUUUUU!!!! Exercícios! \o/
Funções e arquivos
# Estes são os principais métodos para a leitura e escrita de um arquivo.
Arquivos - principais métodos
❏ read(): como visto acima, retorna uma string única com todo o conteúdo do arquivo.
❏ readline(): retorna a próxima linha do arquivo, e incrementa a posição atual.
❏ readlines(): retorna todo o conteúdo do arquivo em uma lista, uma linha do arquivo por elemento da lista.
Funções e arquivos
# Estes são os principais métodos para a leitura e escrita de um arquivo.
Arquivos - principais métodos
❏ write(data): escreve a string data para o arquivo, na posição atual ou ao final do arquivo, dependendo do modo de abertura. Esta função falha se o arquivo foi aberto com modo `r'.
❏ close(): fecha o arquivo.
Funções e arquivos
# Estes são os principais métodos para a leitura e escrita de um arquivo.
Arquivos - principais métodos
arquivo = open('numeros.txt', 'r')for linha in arquivo.readlines():
print(linha)arquivo.close()
Funções e arquivos
Exercícios! .o/
Conclusões
# Curso Python para Zumbis: http://pycursos.com/python-para-zumbis/
# Learn Python the Hard Way:http://learnpythonthehardway.org/
# Python para Desenvolvedores: http://ark4n.wordpress.com/python/
# Documentação:https://www.python.org/
Onde posso aprender mais?
Conclusões
E os próximos eventos?
http://praticasdesoftware.com.br
Conclusões
E os próximos eventos?
http://2014.pythonnordeste.org/