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 3

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

#ou

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

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
# 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
# Parênteses para especificar a ordem
(2+10) * (10+3)

>>> 156
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 noite turma!'

>>> Boa noite turma!
 #Printando indexes da string
 print('{} {} {}'.format(s[0], s[6], s[-1]))

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

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

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

>>> !amrut etion aoB
>>> amrut etion 

String

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

>>> 16

# CAIXA ALTA COM:
s.upper()

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

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

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

>>> ['Boa ','noi', 'e ','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', 25, 'de setembro,', 20, ':', 10]
 #Printando indexes da string
 print('{} {}'.format(lista[0], lista[-1]))

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

>>> ['de setembro,', 20, ':', 10]

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

i = 0

while i < 5 :
    print(i)


>>> 0
>>> 1
>>> 2
>>> 3
>>> 4 

Métodos

def hello_world():
    print('Hello World!')


hello_world()

>>> Hello World!

Validação

Processamento

Renderização

Django

Web Server

Web Browser

request URL

HTML

CRIAndo o Projeto

 django-admin startproject <nome-do-projeto>

ExecutAndo o Projeto

 python manage.py runserver

Criando um App

 python manage.py startapp <nome-do-app>

ExecutAndo o Projeto

 python manage.py runserver

Criando um App

 python manage.py startapp <nome-do-app>

Views

from django.http import HttpResponse
 
# Create your views here.
def index(request):
    return HttpResponse('<h1>Hello!</h1>')
from django.shortcuts import render 
 
# Create your views here.
def index(request):
    return HttpResponse('<h1>Hello!</h1>')

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

IZABELA BORGES

hello@izabelacborges.com
(31)982223763

Python - MIC PUC Minas

By Izabela Borges

Python - MIC PUC Minas

This is a short course on the Python programming language. The syntax, the basics, some data structures and some cool features with puzzles and mini hackatons to test what you learned.

  • 623