Loading

Python Bootcamp - Escola de Férias PUC Minas

Izabela Borges

This is a live streamed presentation. You will automatically follow the presenter and see the slide they're currently on.

BOOTCAMP!

Por que Python?

  • Sintaxe de fácil assimilação;
  • Nível de abstração alto;
  • Extensa biblioteca de código padrão;
  • Tipos são associados à objetos e não às variáveis, por isso não é preciso declarar tipo        ;
  • É uma linguagem extremamente expressiva, você vai escrever menos código comparada à outras linguagens, e obter o mesmo resultado:
// Java
int temp = var1;
var1 = var2;
var2 = temp;
# Python

var2, var1 = var1, var2

Python 2

Python 3

x

ASCII

Unicode

# declaração print

print "Hello World!"

raw_input()
# Divisão de inteiro
>>> 5 / 2
 2
# função print

print("Hello World!")

input()
# Divisão de inteiro
>>> 5 / 2
 2.5

Python 2

Python 3

x

Python 2.x é legado, Python 3.x é o presente e o futuro da linguagem.”

A principal vantagem do 3.x é ser uma tecnologia que está na dianteira, então todos os novos componentes serão implementados no 3.x ao invés de serem adicionados ao 2.x. A outra coisa que você pode querer considerar é que será a linguagem python do futuro, então olhando daqui a alguns anos, será o branch da linguagem o qual a comunidade irá usar.”

Aprender

python 2 ou python 3?

Aprender

python 2 ou python 3?

Tomando em conta que estamos começando a aprender Python hoje, você tem 2 alternativas:

  1. Aprender Python 2.7 e depois Python 3.5 e então trabalhar portando aplicativos de uma versão para a outra;
  2. Ou começar com Python 3.5 e trabalhar desenvolvendo novos aplicativos, já que o suporte ao Python 2 terminará no ano de 2020.

Instalação

Você pode instalar a versão Anaconda ou Miniconda em:

 

 

Ou instalar as versões

2.x ou 3.x de python

puro em:


   $ brew doctor

   $ brew update

   #for python 2
   $ brew install python  

   #for python 3
   $ brew install python3


 #para o python 2
 $ sudo apt-get install python2
        
 #para o python 3
 $ sudo apt-get update
 $ sudo apt-get install python3  

 #para python 2
 $ pip install -U pip
        
 #para python 3
 $ pip3 install -U pip

USE

AMBIENTES VIRTUAIS​

PELO AMOR DE

DEUS!!!!!

print

Como já vimos, a função / declaração de print tem suas diferenças entre o python 2 e o python 3:

# Python 2

print u"Olá turma!"
> Olá turma!
# Python 3

print("Olá turma!")
> Olá turma!

#ou

print("Olá","turma!")
> Olá turma!

Formatação com %

# formatação comum de número inteiro
print "%d" %(10)

>>> 10
# formatação de número inteiro com número mínimo de caracteres
print "%10d" %(10)

>>>         10
# formatação comum de número inteiro
print "%d" %(1234567890)

>>> 1234567890
# formatação de número inteiro com número mínimo de caracteres
print "%5d" %(1234567890)

>>> 1234567890

Formatação com %

# formatação de float com número mínimo de caracteres, 
# e número exato de casas após a vírgula
print "%1.2f" %(13.987)

>>> 13.99
# formatação de float com número mínimo de caracteres, 
# e número exato de casas após a vírgula
print "%25.2f" %(13.987)

>>>                     13.99
# formatação de float com número mínimo de caracteres, 
# e número exato de casas após a vírgula
print "%1.5f" %(13.987)

>>> 13.98700
# formatação de float com número mínimo de caracteres, 
# e número exato de casas após a vírgula
print "%1.0f" %(13.987)

>>> 14

Formatação com %

# formatação de string utilizando %s
s1 = 'olá'
s2 = 'oi'
print u"Podemos cumprimentar uma pessoa de duas formas: \n1. %s \n2. %s" %(s1, s2)


>>> Podemos cumprimentar uma pessoa de duas formas: 
>>> 1. olá 
>>> 2. oi

Além das conversões %nd para números int e long, e
 %n1.n2f para números float, temos também o %s e o %r.
O %s para strings, e o %r para representação de objeto.

# formatação de string utilizando %s
s1 = 'olá'
s2 = 'oi'
print u"Podemos cumprimentar uma pessoa de duas formas: \n1. %r \n2. %r" %(s1, s2)


>>> Podemos cumprimentar uma pessoa de duas formas: 
>>> 1. 'olá' 
>>> 2. 'oi'

Formatação com format()

print "Olha isso: Eu posso {} uma string de {} maneiras.".format('formatar', 'diferentes')

>>> Olha isso: Eu posso formatar uma string de diferentes maneiras.
print "E também posso alterá-la assim: Eu posso {1} uma string de {0} maneiras.".format('formatar', 
'diferentes')

>>> E também posso alterá-la assim: Eu posso diferentes uma string de formatar maneiras.
print "Olha mais essa: Eu posso {var1} uma string de {var2} maneiras.".format(var1 = 'formatar',
var2 = 'diferentes')

>>> Olha mais essa: Eu posso formatar uma string de diferentes maneiras.

Porém imagine que você precisa fazer múltiplas formatações com múltiplas variáveis. E aí em determinado momento você precisa mudar a ordem de impressão dessas variáveis todas. Vai ser um pouquinho trabalhoso mudar todos os nomes de variáveis em todos os lugares necessários...

E para isso existe uma solução: o método format().

Números

Em Python nós temos 4 tipos numéricos: int, long, float e complex.

  1. int: números inteiros;
  2. long: números inteiros muito grandes;
  3. float: números de ponto flutuante;
  4. complex: números complexos.

 

Nesse curso iremos focar em números do tipo int e float.

Aritmética

   # Adição
   2 + 5

   >>> 7
   # Subtração
   5 - 2

   >>> 3
   # Multiplicação
   2 * 5

   >>> 10
  # Divisão py3
  2 / 5

  >>> 2.5
  # Divisão py2
  2 / 5

  >>> 2

Como visto alí embaixo temos um probleminha com o processo de divisão do Python 2 e do Python 3.

 

 

 

 

 

 

 

 

 

 

 

# Especificando um dos números como float
5.0/2

>>> 2.5
# Serve para qualquer dos números 
5/2.0

>>> 2.5
# Com ambos sendo float, não existe esse problema
5.0/2.0

>>> 2.5
# Ou utilizando a função float()
float(5)/2

>>> 2.5
# Ou você pode simplesmente importar a divisão

from __future__ import division

5/2

>>> 2.5
# Divisão natural em python3
5/2

>>> 2.5
# Para ter somente o resultado inteiro
5//2

>>> 2

Aritmética

   # Adição
   2 + 5

   >>> 7
   # Subtração
   5 - 2

   >>> 3
   # Multiplicação
   2 * 5

   >>> 10
 # Divisão py3
 2 / 5

 >>> 2.5
# Elevar um número
5**2

>>> 25
# Raiz
25**(1/2.0)

>>> 5.0
# Ordem de operações em python
2 + 10 * 10 + 3

>>> 105
#Uso de parênteses para se especificar 
# a ordem
(2+10) * (10+3)

>> 156
  # Divisão py2
  2 / 5

  >>> 2
from math import sqrt
sqrt(25)

>>> 5.0

String

Em Python uma string é interpretada como uma sequência de letras em ordem específica. Por isso podemor usar o índex para pegar letras específicas da palavra, como se você estivesse mexendo com um array em Java.

 #Atribuindo uma string à variável s
 s = 'Boa tarde turma!'

>>> Boa tarde turma!
 #Printando indexes da string
 print '%s %s %s' %(s[0], s[6], s[-1])

>>> B r !
 #Indexar de a até b (sem incluir b)
 a, b = 2, 7
 s[a:b] 

>>> a tar
#Usando [::n] mostra a string de n a n 
#caracteres
s[::2]

>>> Batretra
#Utilizando [::-1] você mostra a 
#string de trás pra frente
 s[::-1]
 s[3:-1:-1]

>>> !amrut edrat aoB
>>> amrut edrat 

String

# Você pode descobrir o tamanho usando len()
len(s)

>>> 16

# CAIXA ALTA COM:
s.upper()

>>> BOA TARDE TURMA!
# caixa baixa com:
s.lower()

>>> boa tarde turma!
# Cortar strings com split
s.split()

>>> ['Boa','tarde','turma!']
# Cortar strings com split
s.split('t')

>>> ['Boa ','arde ','urma!']
# Multiplicação de string
s = 'oi'
oi*5

>>> oioioioioi

Operadores de comparação

Operador Descrição Exemplo
== Se nº à esquerda é igual ao nº à direita, retorna verdadeiro 0 == 1 é falso
!= Se nº à esquerda é diferente do nº à direita, retorna verdadeiro 0 != 1 é verdadeiro
<> Se nº à esquerda é diferente do nº à direita, retorna verdadeiro 0<>1 é verdadeiro
> Se nº à esquerda é maior que o nº à direita, retorna verdadeiro 0 > 1 é falso
< Se nº à esquerda é menor que o nº à direita, retorna verdadeiro 0 < 1 é verdadeiro
>= Se nº à esquerda é maior ou igual ao nº à direita, retorna verdadeiro 0>=1 é falso
<= Se nº à esquerda é menor ou igual ao nº à direita, retorna verdadeiro 0<=1 é verdadeiro

if, elif e else

pessoa = 'George'

if pessoa == 'Fred':
    print 'Bem vindo Fred!'
elif pessoa =='George':
    print "Bem vindo George!"
else:
    print "Bem vindo, você é um Weasley?" 

Use indentação

no seu código, ou você será para sempre excomungado da comunidade python!

Na verdade, 

seu código 

simplesmente

não irá ser interpretado

 

Listas

Assim como com strings em Python, em listas podemos obviamente indexar os itens.

 #Atribuindo valores à uma lista
 lista = ['Hoje são', 30, 'de junho,', 14, ':', 30]
 #Printando indexes da string
 print '%s %s' %(lista[0], lista[-1])

>>> Hoje são 30
 #Indexar 
 lista[2:] 

>>> ['de junho,', 14, ':', 30]

Listas

# Você pode descobrir o tamanho usando len()
len(lista)

>>> 6

# Adicionar valor ao fim da lista:
lista.append('!')

lista

>>> ['Hoje são', 30, 'de junho,', 14, ':', 30, '!']
#método pop para retirar um item da lista
lista.pop(2)

>>> de junho
lista = ['oi', 'um', 'dois', 'tres']
lista.sort()

>>> ['dois', 'oi', 'tres', 'um']
lista.reverse()

>>> [30, ':', 14, 'de junho,', 30, 'Hoje são']
# Default pop
item = lista.pop()

item

>>> !

for 

palavra = 'Python!'

for letra in palavra:
    print(letra)

>>> P
>>> y
>>> t
>>> h
>>> o
>>> n
>>> !
lista = [1,2,3,4,5,6,7,8,9,10]

for numero in lista:
    if numero % 2 == 0:
        print(numero)

>>> 2
>>> 4
>>> 6
>>> 8
>>> 10

range() e xrange()

   vinte = range(0,20)

   vinte

>>> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
   vinte = range(0,20,2)

   vinte

>>> [0,2,4,6,8,10,12,14,16,18]
   for num in range(7):
       print num

>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> 6

for 


palavra = 'Python!'
lista_letras = []

for letra in palavra:
    lista_letras.append(letra)

lista_letras

>>> ['P','y','t','h','o','n','!']

list comprehensions


palavra = 'Python!'
lista_letras = [letra for letra in palavra]

>>> ['P','y','t','h','o','n','!']

# números pares utilizando range()
pares = [numero for numero in range(11) if x % 2 == 0]

pares

>>> [0,2,4,6,8,10]

While

While

Tuplas

Dicionários

for 

Sets e boleanos

Métodos

Funções

expressões lambda

escopo de variáveis

Leitura recomendada

  • Explicando as diferenças de Python 2 e 3: site
  • Lista de diferenças entre Python 2 e Python 3:  pdf
  • Python 3.x: Trust Me, It's Better Than 2.x : video
  • Python 3 is killing Python2: blog article
  • Python 2 vs Python 3: blog article

Utilidades

  • GitKraken: interface gráfica pro git (facilita a vida)
  • GitHub Edu Pack: pacote de coisas grátis pra desenvolvedores 
  • Dicas para seu projeto open-source: link
  • Codewars: site de exercícios pra trocentas linguagens de programação 
  • Dicas pra fazer aquele currículo fodão: slide

Hackathon time!

IZABELA BORGES

izabelac.borges@gmail.com
(31)982223763
Made with Slides.com