Introdução ao Python

Parte deste capítulo é baseado nos Tutoriais de Geek Girls Carrots (https://github.com/ggcarrots/django-carrots).

Vamos escrever um pouco de código!

Interpretador Python

Leitores em casa: essa parte está disponível em vídeo (em inglês) Python Basics: Integers, Strings, Lists, Variables and Errors video.

Para começar a brincar com Python nós precisamos abrir uma linha de comando no seu computador. Você já deve saber como fazer isso -- você aprendeu no capítulo [Introdução à Linha de Comando][2].

Assim que estiver pronto, siga as instruções abaixo.

Nós queremos abrir o Python em um terminal, então digite python no Windows, python3 no Mac OS/Linux, e tecle Enter.

command-line

$ python3
Python 3.5.1 (...)
Type "help", "copyright", "credits" or "license" for more information.
>>>

Seu primeiro comando Python!

Depois de executar o comando Python, o prompt mudou para >>>. Para nós, isso significa que por enquanto só utilizaremos comandos na linguagem Python. Você não precisa digitar >>> - O Python fará isso por você.

Se você deseja sair do console do Python, apenas digite exit() ou use o atalho Ctrl + Z no Windows e Ctrl + D no Mac/Linux. Então você não vai ver mais o >>>.

Mas agora não queremos sair da linha de comando do Python. Queremos aprender mais sobre ela. Vamos, então, fazer algo muito simples. Por exemplo, tente digitar alguma operação matemática, como 2 + 3 e aperte o Enter.

command-line

>>> 2 + 3
5

Incrível! Vê como a resposta simplesmente aparece? O Python conhece matemática! Você pode tentar outros comandos como:

  • 4 * 5
  • 5 - 1
  • 40 / 2

Para desenvolver cálculo exponencial, digamos 2 elevado a potência de 3, nós digitamos:

>>> 2 ** 3
8

Divirta-se com isso por um tempo e depois volte aqui :).

Como você pode ver, o Python é uma ótima calculadora. Se você está se perguntando o que mais você pode fazer...

Strings

Que tal o seu nome? Digite seu primeiro nome entre aspas, desse jeito:

command-line

>>> "Ana"
'Ana'

Você acabou de criar sua primeira string! String é uma sequência de caracteres que pode ser processada pelo computador. A string sempre precisa iniciar e terminar com o mesmo caractere. Este pode ser aspas duplas(") ou simples(') - elas dizem ao Python que o que está dentro delas é uma string.

Strings podem ser concatenadas (colocadas juntas). Tente isto:

command-line

>>> "Oi " + "Ana"
'Oi Ana'

Você também pode multiplicar strings usando um número:

command-line

>>> "Ana" * 3
'AnaAnaAna'

Se você precisa colocar um apóstrofo dentro de sua string, existem duas maneiras de fazer.

Usando aspas duplas:

command-line

>>> "Runnin' down the hill"
"Runnin' down the hill"

ou escapando o apóstrofo com uma barra invertida (\):

command-line

>>> 'Runnin\' down the hill'
"Runnin' down the hill"

Legal, hein? Para ver seu nome em letras maiúsculas, basta digitar:

command-line

>>> "Ana".upper()
'ANA'

Você acabou de usar o método upper na sua string! Um método (como upper()) é um conjunto de instruções que o Python realiza em um determinado objeto ("Ana"), sempre que você chamar por ele.

Se você quer saber o número de letras do seu nome, existe um método para isso também!

command-line

>>> len("Ana")
3

Se perguntando porque algumas vezes você chama métodos com um . no fim de uma string (como "Ana".upper()) e algumas vezes você primeiro chama a função colocando a string nos parênteses? Bem, em alguns casos, métodos pertencem a objetos, como upper(), que só pode ser utilizada em strings. Nesse caso, nós chamamos a função de método. Outras vezes, métodos não pertencem a nada específico e podem ser usadas em diferentes tipos de objetos, assim como len(). É por isso que nós estamos fornecendo "Ana" como um parâmetro para a função len.

Sumário

OK, chega de strings. Até agora você aprendeu sobre:

  • o prompt - digitar comandos (códigos) no interpretador Python resulta em respostas em Python
  • números e strings - no Python, números são usados para matemática e strings para objetos de texto
  • operadores - como + e \*, combinam valores para produzir um novo valor
  • métodos - como upper() e len(), executam ações nos objetos.

Isso é o básico sobre todas as linguagens de programação que você for aprender. Pronto para algo mais difícil? Apostamos que sim!

Erros

Vamos tentar algo novo. Podemos obter o tamanho de um número da mesma forma que podemos encontrar o tamanho do nosso nome? Digite len(304023) e pressione Enter:

command-line

>>> len(304023)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

Temos nosso primeiro erro! Ele diz que objetos do tipo "int" (inteiros, apenas números) não têm nenhum comprimento. Então o que podemos fazer agora? Talvez possamos escrever nosso número como uma string? Strings têm um comprimento, certo?

command-line

>>> len(str(304023))
6

Funcionou! Usamos a função str dentro da função len. str () converte tudo para strings.

  • A função str converte as coisas em strings
  • A função int converte as coisas em números inteiros

Importante: podemos converter números em texto, mas nós não podemos, necessariamente, converter texto em números - de qualquer forma, o que int('hello') quer dizer?

Variáveis

Um conceito importante na programação é o conceito de variáveis. Uma variável não é nada mais do que um nome para alguma coisa, de tal forma que você possa usá-la mais tarde. Os programadores usam essas variáveis para guardar dados, para fazer seus códigos mais legíveis e para não ter que se lembrar sempre o que algumas coisas significam.

Digamos que queremos criar uma nova variável chamada nome:

command-line

>>> nome = "Ana"

Vê? É simples! É só fazer: nome igual a Ana.

Como você percebeu, seu programa não retornou nada como fez anteriormente. Então como sabemos que a variável realmente existe? Simplesmente digite nome e tecle Enter:

command-line

>>> nome
'Ana'

Yippee! Sua primeira variável! :) Você sempre pode mudar o seu valor:

command-line

>>> nome = "Sonja"
>>> nome
'Sonja'

Você pode usá-la também em métodos:

command-line

>>> len(nome)
5

Incrível, não? Claro, variáveis podem ser qualquer coisa, então podem ser números também! Tente isso:

command-line

>>> a = 4
>>> b = 6
>>> a * b
24

Mas, e se digitarmos o nome errado? Você consegue adivinhar o que aconteceria? Vamos tentar!

command-line

>>> cidade = "Tokyo"
>>> ciddae
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'ciddae' is not defined

Um erro! Como você pode ver, Python tem diferentes tipos de erros e este é chamado NameError. Python dará este erro se você tentar usar uma variável que não foi definida ainda. Se você encontrar esse erro depois, veja se no seu código se você não digitou o nome de uma variável errado.

Brinque com isso por um tempo e veja o que você consegue fazer!

A função print

Tente isso:

command-line

>>> nome = 'Maria'
>>> nome
'Maria'
>>> print(nome)
Maria

Quando você apenas digita nome, o interpretador Python responde com a representação como string da variável 'nome', que são as letras M-a-r-i-a, entre aspas simples. Quando você diz print(nome), Python vai "imprimir" o conteúdo da variável na tela, sem as aspas, o que é mais puro.

Como veremos mais tarde, print() também é útil quando queremos imprimir algo dentro de funções, ou quando queremos imprimir algo em várias linhas.

Listas

Além de strings e inteiros, o Python tem vários tipos diferentes de objetos. Vamos apresentar um chamado lista. Listas são exatamente o que você acha que elas são: elas são objetos que são listas de outros objetos :)

Vá em frente e crie uma lista:

command-line

>>> []
[]

Sim, esta é uma lista vazia. Não é muito, não é? Vamos criar uma lista dos números da loteria. Como não queremos ficar repetindo o código todo o tempo vamos criar uma variável para ela:

command-line

>>> loteria = [3, 42, 12, 19, 30, 59]

Tudo certo, nós temos uma lista! O que podemos fazer com isso? Vamos ver quantos números de loteria existem nesta lista. Você tem ideia de qual função deve usar para isso? Você já sabe disso!

command-line

>>> len(loteria)
6

Sim! len() pode te dar o número de objetos que fazem parte de uma lista. Uma mão na roda, não? Vamos organizar isso agora:

command-line

>>> loteria.sort()

Isso não retorna nada, apenas troca a ordem em que os números aparecem na lista. Vamos imprimir isso outra vez e ver o que acontece:

command-line

>>> print(loteria)
[3, 12, 19, 30, 42, 59]

Como você pode ver, os números na nossa lista estão ordenados do menor para o maior. Parabéns!

Talvez a gente queira inverter essa ordem? Vamos fazer isso!

command-line

>>> loteria.reverse()
>>> print(loteria)
[59, 42, 30, 19, 12, 3]

Moleza né? Se você quiser adicionar alguma coisa à sua lista, você pode fazer isto digitando o seguinte comando:

command-line

>>> loteria.append(199)
>>> print(loteria)
[59, 42, 30, 19, 12, 3, 199]

Se você quiser mostrar apenas o primeiro número você pode usar índices. Um índice é um número que diz onde um item da lista está. Os computadores gostam de iniciar a contagem por 0, então o primeiro objeto tem índice 0, o próximo tem índice 1 e por aí vai. Tente isso:

command-line

>>> print(loteria[0])
59
>>> print(loteria[1])
42

Como você pode ver, você pode acessar diferentes objetos na sua lista usando o nome da lista e o índice do objeto dentro dos colchetes.

Para apagar alguma coisa de sua lista, você precisará usar indexes como nós aprendemos acima e o método pop(). Vamos tentar um exemplo e reforçar o que aprendemos previamente; nós iremos apagar o primeiro número de nossa lista.

command-line

>>> print(loteria)
[59, 42, 30, 19, 12, 3, 199]
>>> print(loteria[0])
59
>>> loteria.pop(0)
>>> print(loteria)
[42, 30, 19, 12, 3, 199]

Isso funcionou com perfeição!

Por diversão extra, tente alguns outros índices: 6, 7, 1000, -1, -6 ou -1000. Veja se você consegue prever o resultado antes de tentar o comando. Os resultados fazem sentido?

Você pode encontrar uma lista de todos os métodos disponíveis neste capítulo na documentação do Python: https://docs.python.org/3/tutorial/datastructures.html

Dicionários

Leitores em casa: essa parte está disponível em vídeo (em inglês) Python Basics: Dictionaries.

Um dicionário é semelhante a uma lista, mas você pode acessar valores através de uma chave ao invés de um índice. Uma chave pode ser qualquer string ou número. A sintaxe para definir um dicionário vazio é:

command-line

>>> {}
    {}

Isso mostra que você acabou de criar um dicionário vazio. Hurra!

Agora, tente escrever o seguinte comando (tente substituir com as suas próprias informações também):

command-line

>>> participante = {'nome': 'Ana', 'pais': 'Polonia', 'numeros_favoritos': [7, 42, 92]}

Com esse comando, você acabou de criar uma variável chamada participante com três pares de chave-valor:

  • A chave name aponta para o valor 'Ana' (um objeto string),
  • pais aponta para 'Polonia' (outra string),
  • numeros_favoritos apontam para [7, 42, 92] (uma list com três números nela).

Você pode checar o conteúdo de chaves individuais com a sintaxe:

>>> print(participante['nome'])
Ana

Veja, é similar a uma lista. Mas você não precisa lembrar o índice - apenas o nome.

O que acontece se pedirmos ao Python o valor de uma chave que não existe? Você consegue adivinhar? Vamos tentar e descobrir!

command-line

>>> participante['idade']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'idade'

Olha, outro erro! Esse é um KeyError. Python é bastante prestativo e te diz que a chave 'idade' não existe nesse dicionário.

Quando usar um dicionário ou uma lista? Bem, um bom ponto para refletir. Pense em uma solução antes de olhar a resposta na próxima linha.

  • Você precisa de uma sequência ordenada de itens? Use uma list.
  • Você precisa associar valores com chaves, assim você pode procurá-los eficientemente (pela chave) mais tarde? Use um dicionário.

Dicionários, como listas, são mutáveis, ou seja, que podem ser mudados depois que são criados. Você pode adicionar novos pares de chave/valor para o dicionário após sua criação, como:

command-line

>>> participante['linguagem_favorita'] = 'Python'

Como as lists, usar o método len() em dicionários retorna o número de pares chave-valor no dicionário. Vá em frente e digite o comando:

command-line

>>> len(participante)
4

Espero que isso faça sentido até agora. :) Pronta para mais diversão com dicionários? Pule na próxima linha para coisas incríveis.

Você pode usar o comando pop() para deletar um item no dicionário. Digamos, se você quer excluir a entrada correspondente à chave 'numeros_favoritos', basta digitar o seguinte comando:

command-line

>>> participante.pop('numeros_favoritos')
>>> participante
{'pais': 'Polonia', 'linguagem_favorita': 'Python', 'nome': 'Ana'}

Como você pode ver no retorno, o par chave-valor correspondente à chave 'numeros_favoritos' foi excluído.

Além disso você pode mudar o valor associado com uma chave já criada no dicionário. Digite:

command-line

>>> participante['pais'] = 'Alemanha'
>>> participante
{'pais': 'Alemanha', 'linguagem_favorita': 'Python', 'nome': 'Ana'}

Como você pode ver, o valor da chave 'pais' foi alterado de 'Polonia' para 'Alemanha'. :) Emocionante? Hurra! Você acabou de aprender outra coisa incrível.

Sumário

Incrível! Agora você sabe muito sobre programação. Nesta última parte você aprendeu sobre:

  • erros - agora você sabe como ler e entender erros que aparecem se o Python não entender um comando que você passou
  • variáveis - nomes para objetos que permitem você programar facilmente e deixar seu código mais legível
  • listas - listas de objetos armazenados em uma ordem específica
  • dicionários - objetos armazenados como pares chave-valor

Empolgado(a) para o próximo passo? :)

Compare coisas

Leitores em casa: essa parte está disponível em vídeos (em inglês) Python Basics: Comparisons video.

Grande parte da programação consiste em comparar coisas. O que é mais fácil de comparar? Números, é claro. Vamos ver como isso funciona:

command-line

>>> 5 > 2
True
>>> 3 < 1
False
>>> 5 > 2 * 2
True
>>> 1 == 1
True
>>> 5 != 2
True

Demos ao Python alguns números para comparar. Como você pode ver, Python pode comparar não só números mas também resultados de métodos. Legal, hein?

Você está se perguntando por que colocamos dois sinais de igual == lado a lado para comparar se os números são iguais? Nós usamos um único = para atribuir valores a variáveis. Você sempre, sempre precisa colocar dois == se quiser verificar se as coisas são iguais. Também é possível afirmar que as coisas são desiguais entre si. Para isso, usamos o símbolo ! =, conforme mostrado no exemplo acima.

Dê ao Python mais duas tarefas:

command-line

>>> 6 >= 12 / 2
True
>>> 3 <= 2
False

> e < são fáceis, mas o que >= e <= significam? Leia eles da seguinte forma:

  • x > y significa: x é maior que y
  • x < y significa: x é menor que y
  • x < = y significa: x é menor ou igual a y
  • x >= y significa: x é maior ou igual a y

Fantástico! Quer mais? Tente isto:

command-line

>>> 6 > 2 and 2 < 3
True
>>> 3 > 2 and 2 < 1
False
>>> 3 > 2 or 2 < 1
True

Você pode dar ao Python quantos números você quiser para comparar, e ele vai te dar uma resposta! Espertinho, certo?

  • and - se você usar o operador and, ambas as comparações terão que ser verdadeiras para que todo o comando seja verdadeiro
  • or - se você usar o operador or, apenas uma das comparações precisa ser verdadeira para que o comando todo seja verdadeiro

Já ouviu a expressão "comparar maçãs com laranjas"? Vamos tentar o equivalente em Python:

command-line

>>> 1 > 'django'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'

Aqui vemos que assim como na expressão, Python não é capaz de comparar um número (int) e uma string (str).

Em vez disso, ele mostrou um TypeError e nos disse que os dois tipos não podem ser comparados entre si.

Booleano

Acidentalmente, você aprendeu sobre um novo tipo de objeto em Python. Ele é chamado de Booleano -- e provavelmente é o tipo mais fácil que existe.

Existem apenas dois objetos booleanos:

  • True (verdadeiro)
  • False (falso)

Mas para o Python entender isso, você precisa sempre escrever True (primeira letra maiúscula, com o resto das letras em minúsculo). true, TRUE, tRUE não vai funcionar -- só True é correto. (O mesmo se aplica ao False, claro.)

Booleanos podem ser variáveis também! Veja:

command-line

>>> a = True
>>> a
True

Você também pode fazer desse jeito:

command-line

>>> a = 2 > 5
>>> a
False

Pratique e divirta-se com os valores booleanos, tentando executar os seguintes comandos:

  • True and True
  • False and True
  • True or 1 == 1
  • 1 != 2

Parabéns! Booleanos são um dos recursos mais interessantes na programação, e você acabou de aprender como usá-los!

Salvando o Código!

Leitores em casa: essa parte está disponível em vídeos (em inglês) Python Basics: Saving files and "If" statement.

Até agora nós escrevemos todo nosso código em um interpretador python, o que nos limita a uma linha de código a cada momento. Programas normais são salvos em arquivos e executados pelo nosso interpretador de linguagem de programação ou compilador. Até agora nós executamos nossos programas uma linha de cada vez no interpretador Python. Nós vamos precisar de mais de uma linha de código para as próximas tarefas, então precisaremos rapidamente:

  • Sair do interpretador Python
  • Abrir o editor de código de sua escolha
  • Salvar algum código em um novo arquivo python
  • Executá-lo!

Para sair do interpretador Python que estamos usando, simplesmente digite a função exit():

command-line

>>> exit()
$

Isso vai colocá-la de volta no prompt de comando.

Anteriormente, nós escolhemos um editor de código da seção do [editor de código][4]. Nós precisamos abrir o editor agora e escrever algum código em um novo arquivo:

editor

print('Hello, Django girls!')

Obviamente, você agora é uma desenvolvedora Python com alguma experiência, então sinta-se livre para escrever algum código com o que aprendeu hoje.

Agora, nós precisamos salvar o arquivo e nomeá-lo de forma descritiva. Vamos chamar o arquivo de python_intro.py e salvá-lo em seu desktop. Nós podemos nomeá-lo da maneira que quisermos, mas a parte importante aqui é garantir que termine com .py. A extensão .py informa ao nosso sistema operacional que o arquivo é um arquivo Python executável e o Python pode rodá-lo.

Nota Você deve ter observado uma das coisas mais legais sobre editores de código: cores! No console do Python, tudo era da mesma cor, mas agora você deve ver que a função print tem uma cor diferente da sequência de caracteres no seu interior. Isso é chamado de "realce de sintaxe", e é uma ajuda muito útil quando está programando. Perceba a cor das coisas e você vai obter uma dica para quando você esquecer de fechar uma seqüência de caracteres, ou fazer um erro de digitação em um nome de palavra-chave (como def em uma função, que veremos abaixo). Esta é uma das razões pelas quais que nós usamos um editor de código :)

Obviamente, você é um desenvolvedor python bastante experiente agora, então sinta-se livre para escrever um código que você aprendeu hoje.

Agora temos de salvar o arquivo e dê um nome descritivo. Vamos chamar o arquivo python_intro.py e salve-o em seu desktop. Podemos nomear o arquivo tudo o que quisermos, o importante aqui é ter certeza que o arquivo termina no py, isto diz nosso computador, que é um arquivo executável de python e Python pode executá-lo.

Com o arquivo salvo, é hora de executá-lo! Usando as habilidades que você aprendeu na seção de linha de comando, use o terminal change directories - cd para ir para o desktop.

OS X

Em um Mac, o comando será parecido com isto:

command-line

$ cd ~/Desktop
Linux

No Linux, será assim (a palavra "Desktop" pode estar traduzida para seu "Área de Trabalho"):

command-line

$ cd ~/Desktop
Windows

E no windows, vai ser assim:

command-line

> cd %HomePath%\Desktop

Se você ficar confusa, é só pedir ajuda.

Em seguida, use o Python para executar o código do arquivo assim:

command-line

$ python3 python_intro.py
Hello, Django girls!

Nota: no Windows 'python3' não é reconhecido como um comando. Em vez disso, use 'python' para executar o arquivo:

command-line

> python python_intro.py

Muito bem! Você acabou de executar seu primeiro programa em python que foi salvo em um arquivo. Se sente ótima?

Você pode agora passar para uma ferramenta essencial na programação:

if...elif...else

Muitas coisas no código só podem ser executadas se determinadas condições forem atendidas. É por isso que o Python tem uma coisa chamada declaração if.

Substitua o código no arquivo python_intro.py para isto:

python_intro.py

if 3 > 2:

Se salvarmos isso e rodar o arquivo, nós veremos um erro como este:

command-line

$ python3 python_intro.py
File "python_intro.py", line 2
         ^
SyntaxError: unexpected EOF while parsing

Python espera que nós forneçamos mais instruções que serão supostamente executadas caso a condição 3 > 2 venha a ser verdadeira (ou True nesse caso). Vamos tentar fazer o Python imprimir "It works!". Altere o seu código no seu arquivo python_intro.py para isto:

python_intro.py

if 3 > 2:
    print('It works!')

Você percebeu que identamos a próxima linha com 4 espaços? Precisamos fazer isso para que o Python saiba qual código será executado se o resultado for True. Você pode fazer com 1 espaço, mas quase todos os programadores Python fazem com 4 para deixar as coisas arrumadas. Um único tab também vai contar como 4 espaços.

Salve o arquivo e execute novamente:

command-line

$ python3 python_intro.py
It works!

Nota: Lembre-se que no Windows, 'python3' não é reconhecido como um comando. A partir de agora, substitua 'python3' por 'python' para executar o arquivo.

E se a condição não for True?

Nos exemplos anteriores, o código era executado apenas quando as condições eram verdadeiras - True. Mas Python também tem as declarações elif e else:

python_intro.py

if 5 > 2:
    print('5 é de fato maior que 2')
else:
    print('5 não é maior que 2')

Quando isso é executado será impresso:

command-line

$ python3 python_intro.py
5 é de fato maior que 2

Se 2 fosse um número maior que 5, então o segundo comando seria executado. Simples, não é? Vamos ver como o elif funciona:

python_intro.py

nome = 'Sonja'
if nome == 'Ana':
    print('Hey Ana!')
elif nome == 'Sonja':
    print('Hey Sonja!')
else:
    print('Hey anonymous!')

e depois de executar:

command-line

$ python3 python_intro.py
Hey Sonja!

Vê o que acontece aqui? elif permite que você adicione condições extras que acontecem se as condições anteriores falharem.

Você pode adicionar quantas declarações elif você quiser após a declaração if inicial. Por exemplo:

python_intro.py

volume = 57
if volume < 20:
    print("It's kinda quiet.")
elif 20 <= volume < 40:
    print("It's nice for background music")
elif 40 <= volume < 60:
    print("Perfect, I can hear all the details")
elif 60 <= volume < 80:
    print("Nice for parties")
elif 80 <= volume < 100:
    print("A bit loud!")
else:
    print("My ears are hurting! :(")

O Python roda cada um dos testes em sequência e imprime:

command-line

$ python3 python_intro.py
Perfect, I can hear all the details

Comentários

Comentários são linhas que começam com um #. Você pode escrever qualquer coisa que você quiser após o # que o Python irá ignorar completamente. Comentários podem deixar seu código mais fácil de ser entendido por outras pessoas.

Vejamos como isso se parece:

python_intro.py

# Change the volume if it's too loud or too quiet
if volume < 20 or volume > 80:
    volume = 50
    print("That's better!")

Você não precisa escrever um comentário para cada linha de código, mas eles são úteis para explicar o por quê de seu código estar fazendo algo, ou para prover um sumário se estiver fazendo algo complexo.

Sumário

Nos poucos exercícios anteriores você aprendeu:

  • comparar as coisas - em Python, você pode comparar as coisas usando os operadores >, >=, ==, <=, < e o and, or
  • Booleano - um tipo de objeto que só tem um dos dois valores: True ou False
  • Salvando arquivos - armazenamento de código em arquivos assim você pode executar programas maiores.
  • if... elif... else - instruções que permitem que você execute o código somente se determinadas condições forem atendidas.
  • comentários - linhas que o Python não executa que deixam você documentar o seu código

É hora da última parte deste capítulo!

Suas próprias funções!

Se lembra de funções como len() que você pode executar no Python? Bem, boas notícias, agora você vai aprender a escrever suas próprias funções!

Uma função é uma sequência de instruções que o Python deve executar. Cada função em Python começa com a palavra-chave def, seguida de um nome para a função e opcionalmente uma lista de parâmetros. Vamos começar com uma função simples. Substitua o código no python_intro.py com o seguinte:

python_intro.py

def hi():
    print('Olá!')
    print('Como vai você?')

hi()

Ok, nossa primeira função está pronta!

Você pode se perguntar por que escrevemos o nome da função na parte inferior do arquivo. Porque Python lê o arquivo e executa de cima para baixo. Então, para usar a nossa função, temos de reescrevê-la na parte inferior.

Vamos executa-lo agora e ver o que acontece:

command-line

$ python3 python_intro.py
Olá!
Como vai você?

Isso foi fácil! Vamos construir nossa primeira função com parâmetros. Usaremos o exemplo anterior - uma função que diz 'hi' para quem o executa - com um nome:

python_intro.py

def hi(nome):

Como você pode ver, nós demos a nossa função um parâmetro que nós chamamos de nome:

python_intro.py

def hi(nome):
    if nome == 'Ana':
        print('Hi Ana!')
    elif nome == 'Sonja':
        print('Hi Sonja!')
    else:
        print('Hi anônima!')

hi()

Lembre-se: A função print é identada com quatro espaços dentro da declaração if. A razão disso é porque a função roda quando a condição é satisfeita. Vamos ver como isso funciona agora:

command-line

$ python3 python_intro.py
Traceback (most recent call last):
File "python_intro.py", line 10, in <module>
  hi()
TypeError: hi() missing 1 required positional argument: 'nome'

Oops, um erro. Ainda bem que o Python nos dá uma mensagem de erro clara. Ela nos informa que a função hi() (a que nós definimos) requer um argumento (chamado nome) e que nós nos esquecemos de passá-lo quando chamamos a função. Vamos consertar isso no final do arquivo:

python_intro.py

hi("Ana")

E execute o arquivo novamente:

command-line

$ python3 python_intro.py
Hi Ana!

E se nós mudarmos o nome?

python_intro.py

hi("Sonja")

E executá-lo:

command-line

$ python3 python_intro.py
Hi Sonja!

Agora, o que você acha que irá acontecer se você escrever outro nome lá, como o que chamamos de argumento? (Nem Ana, nem Sonja.) Tente e veja se você está certa. Deveria colocar isso na tela:

command-line

Hi anônima!

Isso é incrível, não é? Dessa forma você não tem que repetir o código toda vez que você quiser trocar o nome da pessoa que a função deve cumprimentar. E é justamente por isso que nós precisamos de funções – você nunca quer repetir seu código!

Vamos fazer algo mais elaborado – existem muitos nomes, e escrever uma condição para cada um seria muito trabalhoso, não é?

python_intro.py

def hi(nome):
    print('Hi ' + nome + '!')

hi("Rachel")

Vamos chamar o código agora

command-line

$ python3 python_intro.py
Hi Rachel!

Parabéns! Você acabou de aprender como escrever funções! :)

Laços de repetição

Leitores em casa: essa parte está disponível em vídeos (em inglês) Python Basics: For Loop.

Essa já é a última parte. Isso foi rápido, não? :)

Programadoras não gostam de ficar se repetindo. Programação sempre sobre automatizar coisas, então nós não queremos cumprimentar cada pessoa por seu nome manualmente, certo? É ai que os laços de repetição entram em cena.

Ainda se lembra das listas? Vamos fazer uma lista de garotas:

python_intro.py

garotas = ['Rachel', 'Monica', 'Phoebe', 'Ana', 'You']

Nós queremos cumprimentar todas elas por seus nomes. Nós temos a função hi para fazer isso, então vamos fazer isso com um laço de repetição:

python_intro.py

for nome in garotas:

A declaração for se comporta de maneira similar a da declaração if; os dois códigos abaixo precisam estar identados com quatro espaços.

Aqui está o código completo que irá para dentro do arquivo:

python_intro.py

def hi(nome):
    print('Hi ' + nome + '!')

garotas = ['Rachel', 'Monica', 'Phoebe', 'Ana', 'You']
for nome in garotas:
    hi(nome)
    print('Próxima garota')

A nós rodamos ele:

command-line

$ python3 python_intro.py
Hi Rachel!
Próxima garota
Hi Monica!
Próxima garota
Hi Phoebe!
Próxima garota
Hi Ana!
Próxima garota
Hi You!
Próxima garota

Como você pode ver, tudo que você colocar dentro da declaração for, com a indentação (aqueles quatro espaços a partir da margem esquerda) será repetido para cada elemento da lista garotas.

Você também pode usar o for com números usando a função range:

python_intro.py

for i in range(1, 6):
    print(i)

Que irá imprimir:

command-line

1
2
3
4
5

range é uma função que cria uma lista de números em sequência (esses números são fornecidos por você como parâmetros).

Note que o segundo desses números não é incluído na lista que é exibida pelo Python (o que significa que range(1, 6) conta de 1 até 5, não inclui o número 6). É por isso que "range" é meio aberta ("half-open"), e com isso nós queremos dizer que a função inclui o primeiro valor, mas não o último.

Sumário

É isso. Você arrebentou! Esse foi um capítulo exigente, então você deve se sentir orgulhosa. Nós definitivamente estamos orgulhosas de você chegar tão longe!

Você deve estar querendo, por um momento, fazer alguma outra coisa – alongar, dar uma volta por aí, descansar os olhos. Faça isso antes de passar para o próximo capítulo. :)

Cupcake

results matching ""

    No results matching ""