Você está na página 1de 40

BASICÃO EM PYTHON

2 – NOSSO PRIMEIRO PROGRAMA


Para entender a sintaxe do Phyton, iremos começar com um primeiro programa muito simples. É uma tradição
em programação começar com uma aplicação Hello World, quando você estiver aprendendo uma nova
linguagem. Então, iremos fazer assim neste capítulo.

HELLO WORLD
Uma aplicação Hello World é apenas um script cuja saída é o texto ”Hello World” na tela. No Python isso é
especialmente simples.
print(“Hello World!”)

Como você pode ver, isso é uma linha em Python. Em outras linguagens, teríamos de definir uma estrutura
básica com funções, classes e muito mais, apenas para imprimir um texto.

Mas vamos ver o que está acontecendo aqui. A primeira coisa que podemos noticiar é a chamada função com o
nome print. Quando usamos esta função, ela dá como saída um certo texto na tela. O texto que queremos
imprimir precisa ser colocado entre parênteses.

Uma outra coisa que é muito importante aqui, são as aspas. Elas indicam que o texto é uma string e não um
nome de algo mais. Uma string é um tipo de dado que representa texto. Quando não usarmos aspas, o
interpretador irá pensar que Hello World! é um nome de variável e não um texto. Portanto, obteremos uma
mensagem de erro. Mas falaremos sobre variáveis e tipos de dados no próximo capítulo.

RODANDO O SCRIPT
Agora, nós só precisamos rodar o script que acabamos de escrever. Para isso, você precisa salvar o script num
arquivo Python. Depois você pode usar o interpretador integrado da IDLE. apenas clique em Run → Run
Module (ou F5).

Você verá então os resultados na tela.

pág.1
24/05/2022
BASICÃO EM PYTHON

Isto é como você roda seu primeiro programa.

3 – VARIÁVEIS E TIPOS DE DADOS


Provavelmente, você já encontrou variáveis nas suas aulas de matemática. Basicamente, elas são apenas
espaços reservados para valores. Em programação, é o mesmo. A diferença é que temos uma porção de tipos
diferentes de dados, e as variáveis não podem somente armazenar valores de números, mas também de objetos
inteiros.

Neste capítulo iremos dar uma olhada nas variáveis do Python e as diferenças dos tipos de dados individuais.
Também, falaremos sobre as conversões de tipos.

TIPOS DE DADOS NUMÉRICOS


Os tipos que você provavelmente já sabe da matemática são os tipos de dados numéricos. Existem diferentes
espécies de números que podem ser usadas para operações matemáticas.

TIPOS DE DADOS NUMÉRICOS


TIPO DE DADO PALAVRA-CHAVE DESCRIÇÃO
Integer int Um número inteiro
Float float Um número de
ponto flutuante
Complex complexo Um número
complexo
Como você pode ver, é muito simples. Um integer é apenas um número inteiro regular., que podemos fazer
cálculos básicos com ele. Um float é uma extensão do integer e permite casas decimais devido a ele ser um
número de ponto flutuante. E um número complex é o que tem exatamente um componente real e um
imaginário. Se você não entender matematicamente os números complexos, esqueça-os. Você não vai precisar
deles agora para sua correta programação.

STRINGS
Uma string é apenas uma sequência básica de caracteres ou basicamente um texto. Nosso texto que imprimimos
no último capítulo era uma string. As strings sempre precisam estar entre aspas. Caso contrário o interpretador
não vai perceber que elas devem ser tratadas como texto. A palavra-chave para String em Python é str.

pág.2
24/05/2022
BASICÃO EM PYTHON

BOOLEANS
Booleans são provavelmente o tipo de dados mais simples em Python. Eles podem somente ter um de dois
valores, a saber True ou False. É um tipo de dado binário. Usaremos muito eles quando estivermos diante de
condições e loops (laços). A palavra-chave aqui é bool.

SEQUÊNCIAS
As sequências são tópicos que cobriremos no último capítulo. Mas como as sequências são também tipos de
dados mencionaremos no mínimo que elas existem.

TIPOS DE SEQUÊNCIAS
TIPO DE DADO PALAVRA-CHAVE DESCRIÇÃO
Lista list Coleção de valores
Tupla tuple Lista imutável
Dicionário dict Lista dos pares
chave-valor

CRIANDO VARIÁVEIS
Criar variáveis em Python é muito simples. Escolhemos apenas um nome e atribuímos um valor.
meuNumero = 10
meuTexto = “Hello”

Aqui, definimos duas variáveis. A primeira é uma integer e a segunda uma string. Você pode basicamente
escolher qualquer que seja o nome que você queira, mas existem algumas limitações. Por exemplo, não é
permitido usar palavras-chave reservadas como int ou dict. Também, não é permitido o nome começar com um
número ou um caractere especial diferente do sublinhado (underline),

USANDO VARIÁVEIS
Agora que temos definidas nossas variáveis, podemos começar a usá-las. Por exemplo, podemos imprimir os
valores:
print(meuNumero)
print(meuTexto)

Como não estamos usando aspas, o texto nos parênteses é tratado como um nome de variável. Portanto, o
interpretador imprime os valores 10 e “Hello”.

pág.3
24/05/2022
BASICÃO EM PYTHON

A saída depois de rodar é:

TYPECASTING (distribuindo papéis)


Algumas vezes, obtemos um valor num tipo de dado que não podemos trabalhar com ele apropriadamente. Por
exemplo, poderíamos obter uma string como uma entrada, mas aquela string contém um número como seu
valor. Nesse caso “10” não é o mesmo que 10. Não podemos fazer cálculos com uma string, mesmo se o texto
representa um número. Por essa razão precisamos distribuir os papéis.
valor = “10”
numero = int(valor)

A distribuição de papéis é feita usando a função tipo de dados específica. Neste caso estamos convertendo uma
string para um integer usando a palvra-chave int. Você pode também reverter isso usando a palavra-chave str.
Isso é uma coisa muito importante e precisaremos dela muito frequentemente.

4 – OPERADORES
A próxima coisa que iremos aprender são os operadores. Usamos operadores para administrar as variáveis ou
valores e realizar operações com elas. Existem muitos tipos diferentes de operadores e neste capítulo iremos
falar sobre as diferenças e aplicações.

OPERADORES ARITMÉTICOS
Os operadores mais simples são os operadores aritméticos. Você provavelmente já os conhece da matemática.

pág.4
24/05/2022
BASICÃO EM PYTHON

OPERADORES ARITMÉTICOS
OPERADOR NOME DESCRIÇÃO
+ Adição Adiciona dois valores
- Subtração Subtrai um valor de outro
* Multiplicação Multiplica dois valores
/ Divisão Divide um valor por outro
% Módulo Retorna o resto de uma divisão
** Exponencial Eleva um valor à potência de
outro valor
// Floor Division Retorna o resultado de uma
divisão sem casa decimais (a
parte inteira da divisão

Vamos dar uma olhada em alguns exemplos:

20 + 5 = 25 20 – 5 = 15

2 * 15 = 30 5 / 2 = 2.5

7%2=1 5 ** 2 = 25

5 // 2 = 2

Se você não acertar, não se preocupe. Apenas brinque com os operadores e imprima os resultados. É claro que
você pode também usar variáveis e não somente valores puros.

Vai aparecer a caixa de mensagem:

pág.5
24/05/2022
BASICÃO EM PYTHON

Clique em ok e escolha um diretório para armazenar o arquivo xxx.py:

OPERADORES DE ATRIBUIÇÃO
OPERADORES DE ATRIBUIÇÃO
OPERADOR DESCRIÇÃO
= Atribui um valor a uma variável
+= Adiciona um valor a uma variável
-= Subtrai um valor de uma variável
*= Multiplica um valor com a variável
/= Divide a variável por um valor
%= Atribui o resto de uma divisão
**= Atribui o resultado de uma
exponenciação
//= Atribui o resultado de uma floor
division

Basicamente usamos esses operadores para atribuir diretamente um valor. As duas declarações logo abaixo tem
o mesmo efeito. É apenas uma maneira mais simples de escrevê-la:
a = a + 10
a += 10

pág.6
24/05/2022
BASICÃO EM PYTHON

OPERADORES DE COMPARAÇÃO
Quando usamos operadores de comparação para comparar dois objetos, sempre obtemos um Boolean. Assim
nosso resultado é binário, ou True ou False.

OPERADORES DE COMPARAÇÃO
OPERADOR NOME DESCRIÇÃO
== Igual Dois valores são os mesmos
!= Não Igual Dois valores não são os
mesmos
> Maior Que Um valor é maior que o outro
< Menor Que Um valor é menor que o outro
>= Maior ou Um valor é maior que ou igual
Igual a outro
<= Menor ou Um valor é menor que ou igual
Igual a outro

Usamos comparações, quando estamos tratando com condições e loops. Estes são dois tópicos que cobriremos
no último capítulo.

Quando uma comparação estiver correta, ela retorna True, caso contrário ela retorna False. Vamos olhar para
alguns exemplos:

OPERADORES LÓGICOS
OPERADORES LÓGICOS
OPERADOR DESCRIÇÃO
or No mínimo um tem que ser True
and Ambos têm de ser True
not Nega a entrada
Penso que a melhor de explicar é por meio de exemplos, então vamos olhar para alguns exemplos:

pág.7
24/05/2022
BASICÃO EM PYTHON

OUTROS OPERADORES
Existem também outros operadores como bit a bit ou operadores filiação. Mas alguns deles nós não
precisaremos e outros precisam um pouco mais de conhecimento de programação para entende-los. Então,
para esse capítulo vamos ficar com aqueles.

5 – ENTRADA DE USUÁRIO
Até agora, a única coisa que fizemos foi imprimir texto na tela. Mas o que podemos também fazer é entrar com
nossos próprios dados no script. Neste capítulo, iremos dar uma olhada nas entradas de usuário e como
manuseá-las.

FUNÇÃO INPUT
No Python temos a função input, que permite-nos obter a entrada do usuário na aplicação a partir do console.
nome = input(“Por gentileza, entre com o seu nome:”)
print(nome)

Aqui, o usuário pode entrar com seu nome que ficará salvo numa variável nome. Podemos então chamar essa
variável e imprimi-la.

A saída fica assim:

Mais exemplo:

pág.8
24/05/2022
BASICÃO EM PYTHON

A saída agora, fica:

Este exemplo é um pouco enganoso. Parece que estamos pegando dois números como entrada e imprimindo a
soma. O problema é que a função input sempre retorna uma string. Assim quando você entra com 3, o valor da
variável é “3”, é uma string.

Então, o que acontece quando adicionamos duas strings? Apenas acrescentamos uma à outra. Isto significa que
a soma de “3” e “4” será “34”. Se quisermos uma adição matemática, precisamos distribuir primeiro os papéis
das nossas variáveis.

A saída agora fica:

pág.9
24/05/2022
BASICÃO EM PYTHON

Agora nosso script funcionou bem! Lembre-se sempre que a função input retorna uma string e você precisa
primeiro distribuir, se você quiser fazer cálculos com ela.

6 - CONDIÇÕES
Este capítulo é sobre um conceito que tornará nossos scripts mais interessantes. Até aqui, o interpretador
sempre executou um comando após outro. Com condições, isso muda.

IF, ELIF, ELSE


Basicamente, uma condição precisa retornar True, de modo que nosso script continue com o código nesse bloco.

As três palavras-chave importantes aqui são if, elif e else. Nesse script, o usuário entra com um número que é
convertido para um inteiro. Depois nossa primeira declaração if verifica se esse número é menor que 10.
Lembre-se que comparações sempre retornam True ou False. Se o retorno for True, o código que está identado
aqui é executado. Usamos dois pontos e a identação para marcar blocos de códigos no Python.

Se esta condição retornar False, ele continua ao bloco-elif e verifica se esta condição é atingida. O mesmo
procedimento ocorre aqui. Você pode ter tantos blocos-elif quanto quiser. Se nenhuma condição for atingida,
entramos no bloco-else.

pág.10
24/05/2022
BASICÃO EM PYTHON

A saída do script anterior é:

Neste fluxograma você pode ver como árvore com if, elif e else básicos funcionam. É claro, não é preciso um
bloco elif ou else. Você pode apenas escrever uma declaração if e se a condição não for atingida, ele pula o
código e continua com o resto do script.

DECLARAÇÕES IF ANINHADAS
Você pode também colocar os blocos if dentro de blocos if. Estes são chamados de declarações if aninhadas.

pág.11
24/05/2022
BASICÃO EM PYTHON

Assim, aqui temos a primeira condição, que verifica se o número é par. Quando for par ela então verifica se é
zero ou não. Este é um exemplo trivial, mas é para você obter o conceito.

7 – LOOPS (LAÇOS)
Se quisermos automatizar um processo repetitivo, podemos usar loops para fazer isso. Um loop é uma estrutura
de programação que executa o mesmo código uma e mais vezes, enquanto uma certa condição não for atingida.
Isso pelo menos é verdadeiro para o clássico while loop.

WHILE LOOP
Existem dois tipos de loops no Python: while loops e for loops. Um while loop executa o código no seu bloco até
uma condição ser atingida.

Como você pode ver, ele vai em círculos até a condição retornar: False. Vamos dar uma olhada no código:

Usamos a palavra-chave while para definir o loop. Depois estabelecemos uma condição e o bloco de código é
novamente indentado após os dois pontos. Neste exemplo, estamos contando de um a dez. Estamos

pág.12
24/05/2022
BASICÃO EM PYTHON

inicializando a variável número com o valor zero. Em cada iteração, acrescemos ela por um e imprimimos o seu
valor. Isso é feito enquanto o número for menor que dez.

A saída fica:

LOOP SEM FIM


Com este conhecimento, podemos criar um loop sem fim. Isso pode parecer inútil, mas na verdade tem algumas
aplicações.
while True:
print(“Isto imprimirá para sempre”)

É feito por denição um loop que tem a condição True. Como ela é sempre True, o loop nunca finalizará, a menos
que terminamos o script.

Advertência: Isto poderá sobrecarregar seu computador, especialmente se ele for lento.

LAÇO FOR
O for loop funciona um pouco diferente. Aqui não temos uma condição. Este tipo de laço é usado para iterate
sobre sequência. Desde que esse é o tópico do próximo capítulo, não daremos muito detalhes aqui.

Por hora, nós não cuidaremos da sintaxe das sequências. Apenas noticiamos que temos uma lista de quatro
números. Usamos então a palavra-chave for para iterate (repetir) sobre a sequência. A variável de controle
numero sempre fica atribuída pelo valor do próximo elemento. Nesse caso, imprimimos todos os números.

pág.13
24/05/2022
BASICÃO EM PYTHON

Como você pode ver, o loop continua enquanto existir um próximo elemento na lista.

A saída é:

FUNÇÃO RANGE
Com a função range, podemos criar listas que contenham todos os números entre dois números.
for x in range(100):
print(x)

Isso aqui é uma maneira simples de imprimir todos os números até 100. Mas o que você pode também fazer ´s
começar a contagem de outros números:
for x in range(20,80):
print(x)

Nossa lista range aqui contém os números entre 20 e 80.

DECLARAÇÕES DE CONTROLE DE LOOP


Afim de administrar loops, temos a chamada declarações de controle de loop. Elas permitem-nos manipular o
fluxo do processo do loop até um ponto específico.

DECLARAÇÃO BREAK

pág.14
24/05/2022
BASICÃO EM PYTHON

Com a declaração break, podemos terminar um loop imediatamente, sem se preocupar com a condição.

Aqui temos um loop de contagem simples. Tão logo o número atingir o valor 5, executamos uma declaração
break e o script continua com o resto do código.

A saída agora é:

DECLARAÇÃO CONTINUE
Se não quisermos brecar o loop completamente, mas pular somente uma repetição, podemos usar a declaração
continue.

Neste exemplo, sempre aumentamos o numero por 1 e depois imprimimo-lo. Mas se o número for cinco,
pulamos a repartição, após o incremento. Assim este número (5) não será impresso.

pág.15
24/05/2022
BASICÃO EM PYTHON

DECLARAÇÃO PASS
A declaração pass é uma declaração muito especial, pois ela não faz absolutamente nada. Realmente, ela não é
realmente uma declaração de controle de loop, mas um marcador de posição para o código.
if numero == 10:
pass
else:
pass
while numero < 10:
pass

Algumas vezes você quer escrever sua estrutura básica de código, sem implementar a lógica ainda. Nesse caso,
podemos usar a declaração pass, a fim de preencher os blocos de código. Caso contrário, não podemos rodar o
script.

8 – SEQUÊNCIAS
A sequência é a estrutura de dados mais básica no Phyton. Ela contém múltiplos elementos e elas são indexadas
com um número específico. Neste capítulo, iremos falar sobre os diferentes tipos de sequências e suas funções.

LISTAS
O primeiro tipo de sequência que estaremos olhando para ela é a lista. Ela é o que o nome diz – apenas uma
lista.
números = [10,22,6,1,29}

Em Python, definimos listas usando colchetes. Colocamos os elementos entre eles e os separamos por vírgulas.
Os elementos de uma lista podem ser de qualquer tipo de dados e podemos também misturá-los.

pág.16
24/05/2022
BASICÃO EM PYTHON

numeros = [10,22,6,1,29]
nomes = [“João”, “Alex”, “Bob”]
misturado = [“Ana”, 20, 28.12, True]

ACESSANDO VALORES
Para acessar valores de uma sequência, precisamos primeiro falar sobre índices. O índice é mais ou menos a
posição do elemento. O importante aqui é que começamos contando do zero. Assim o primeiro elemento tem
índice zero, o segundo tem índice um e assim por diante. Podemos então acessar o elemento usando o índice.
print(numeros[2])
print(misturado[1])
print(nomes[0])

Imprimimos o terceiro elemento dos números (6), o segundo elemento misturado (20) e o primeiro elemento
nomes (João).

Mas em vez de somente acessarmos um único elemento, podemos também definir um range que queremos
acessar.
print(numeros[1:3]) # 22 e 6 (veja que não pega o terceiro)
print(números[:3]) # 10, 22 e 6
print(números[1:] # 22, 6, 1 e 29

Usando dois pontos, podemos fatiar nossa lista e acessar múltiplos elementos de cada vez.

A saída será:

pág.17
24/05/2022
BASICÃO EM PYTHON

MODIFICANDO ELEMENTO
Numa lista, podemos modificar os valores. Para isso, indexamos os elementos da mesma maneira.
numeros[1] = 10
nomes[2] = “Jack”

O segundo elemento da lista de números agora é 10 em vez de 22 e o terceiro elemento da lista de nomes é
Jack em vez de Bob.

pág.18
24/05/2022
BASICÃO EM PYTHON

OPERAÇÕES COM LISTA


Alguns dos operadores que já conhecemos podem ser usados quando se trabalha com listas – adição e
multiplicação.

OPERAÇÕES COM LISTAS


OPERAÇÃO RESULTADO
[10,20,30] + [10,20,30,40,50,60]
[40,50,60]
[10,”Bob”]*3 [10,”Bob”,10,”Bob”,10,”Bob”]

FUNÇÕES DE LISTA
Quando se trata de listas, existem uma porção de diferentes funções e métodos que podemos usar. Não
poderemos falar acerca de todos eles, pois não é necessário. Nosso foco residirá naquelas mais importantes.

FUNÇÕES DE LISTA
FUNÇÃO DESCRIÇÃO
len(lista) Retorna o tamanho de uma lista
max(lista) Retorna o item com valor Máximo
min(lista) Retorna o item com o valor mínimo
list(elemento) Elementos distribuídos na lista

MÉTODOS DE LISTA
MÉTODO DESCRIÇÃO
lista.append(x) Adiciona elemento numa lista
lista.count(x) Conta quantas vezes um elemento
aparece na lista
lista.index(x) Retorna o primeiro índice em que o
elemento dado ocorre
lista.pop() Remove a retorna o último elemento
lista.reverse() Reverte a ordem dos elementos
lista.sort() Classifica os elementos de uma lista

TUPLAS
O próximo tipo de sequência que iremos observar é muito similar à lista. É a tupla. A única diferença entre uma
lista e uma tupla é que a tupla é imutável. Não podemos manipulá-la.
tpl = (10,20,30)

Note que uma tupla é definida usando parênteses ao invés de colchetes.

FUNÇÕES DE TUPLAS
Basicamente, todas as funções de leitura e acesso como len, min e max permanecem as mesmas e podem ser
usadas com tuplas. Mas é claro que não é possível usar qualquer função de modificação ou anexação.

pág.19
24/05/2022
BASICÃO EM PYTHON

DICIONÁRIOS
O último tipo de sequência neste capítulo será o dicionário. Um dicionário funciona um pouco como um léxico.
Um elemento nesta estrutura de dados aponta para um outro. Estamos falando sobre o par chave-valor. Cada
entrada nessa sequência tem uma chave e um valor respectivo. Em outras linguagens de programação esta
estrutura é chamada mapa de hash.
dct = {“Nome”:”João, “Idade”:25, “Altura”:6.1}

Definimos dicionários usando chaves e os pares chave-valor são separados por vírgulas (,). A chave e o valor são
separados por dois pontos (:). No lado esquerdo temos a chave e no lado direito o valor correspondente.

Como as chaves agora trocam os índices, elas têm de ser únicas. Este não é caso para os valores. Podemos ter
muitas chaves com o mesmo valor, mas quando endereçamos uma certa chave, ela tem que ser somente uma
com aquele nome particular. Também as chaves não podem ser mudadas.

ACESSANDO VALORES
A fim de acessar valores de um dicionário, precisamos endereçar as chaves.
print(dct[“Nome”])
print(dct[“Idade”])
print(dct[“Altura’])

Note que se existisse múltiplas chaves com o mesmo nome, não poderíamos obter um resultado porque não
saberíamos qual valor estaremos falando sobre ele.

Vamos ver isso IDLE:

A saída será:

pág.20
24/05/2022
BASICÃO EM PYTHON

FUNÇÕES DE DICIONÁRIO
Semelhante às listas, os dicionários também têm uma porção de funções e métodos. Mas como eles trabalham
um pouco diferente e eles não têm índices, suas funções não são as mesmas.

FUNÇÕES DE DICIONÁRIO
FUNÇÃO DESCRIÇÃO
len(dict) Retorna o tamanho de um dicionário
str(dict) Retorna o dicionário mostrado como
uma string

MÉTODOS DE DICIONÁRIO
MÉTODO DESCRIÇÃO
Remove todos os elementos de um
dict.clear()
dicionário
dict.copy() Retorna uma cópia do dicionário
Retorna um novo dicionário com as
dict.fromkeys()
mesmas chaves, mas valores vazios
dict.get(key) Retorna o valor da chave dada
Retorna se o dicionário tiver uma certa
dict.has_key(key)
chave ou não
Retorna todos os itens numa lista de
dict.items()
tuples
dict.keys() Retorna uma lista de todas as chaves
Adiciona o conteúdo de outro dicionário
dict.update(dict2)
a uma existente
dict.values() Retorna uma lista de todos os valores

OPERADORES DE FILIAÇÃO
Um tipo de operadores que não temos falado sobre ele ainda é o operador de filiação. Estes são muito
importantes quando se trata de sequências. Usamo-los para verificar se um elemento é um membro de uma
sequência, mas também para repetir sobre sequências.
list1 = [10,20,30,40,50]
print(20 in list1) #True
print(60 in list1) #False
print(60 not in list1) #True

Com os operadores in ou not in, verificamos se uma sequência contém um certo elemento. Se o elemento
estiver na lista, ela retorna True. Caso contrário, ela retorna False.

Mas também usamos operadores de filiação quando repetimos sobre sequências com for loops.
for x in list1:
print(x)

pág.21
24/05/2022
BASICÃO EM PYTHON

Para (For) cada elemento na (in) sequência x torna-se o valor do próximo elemento e dá impresso. Já falamos
sobre isso no capítulo loops.

9 – FUNÇÕES
Muitas vezes em programação, implementamos códigos que queremos usar repetidamente em diferentes
lugares. Este código pode se tornar muito grande. Ao invés de reescrevê-lo sempre que precisamos, podemos
usar funções.

Funções podem ser vistas como blocos de códigos organizados que reutilizaremos em diferentes lugares nos
nossos scripts. Elas tornam nosso código mais modular e aumenta a reutilização.

DEFININDO FUNÇÕES
Para definir uma função no Python, usamos a palavra-chave def, seguida por um nome da função e parênteses.
O código precisa estar identado (recuado) após os dois pontos (:).
def hello():
print(“Hello”)

Aqui temos uma função hello que imprime o texto “Hello”. É muito simples. Agora podemos chamar a função
usando seu nome.
hello()

PARÂMETROS
Se quisermos tornar nossas funções mais dinâmicas, podemos definir parâmetros. Esses parâmetros podem
então serem processados no código da função.
def print_soma(numero1, numero2):
print(numero1 + numero2)

Como você pode ver, temos dois parâmetros entre parênteses – numero1 e numero2.

A função print_soma agora imprime a soma dos dois valores.


print_soma(20,30)

Esta função quando chamada imprime o valor 50 na tela.

Vamos ver como fica:

A saída será:

pág.22
24/05/2022
BASICÃO EM PYTHON

VALORES RETURN
Nas duas funções que escrevemos (hello e print_soma) estamos apenas executando instruções. O que podemos
também fazer é retornar um certo valor. Este valor pode então ser salvo numa variável ou pode ser processado.
Para isso, use a palavra-chave return.
def adicao(numero1, numero2):
return numero1 + numero2

Aqui retornamos a soma dos dois parâmetros em vez de imprimi-los. Mas podemos então usar esse resultado
no nosso código.
numero3 = adicao(10,20)
print(numero3)

PARÂMETROS DEFAULT
Algumas vezes queremos nossos parâmetros terem valores default no caso de não especificarmos mais nada.
Podemos fazer isso atribuindo valores na definição da função.
def dizer(text=”Default Text”):
print(text)

pág.23
24/05/2022
BASICÃO EM PYTHON

Nesse caso, nossa função dizer imprime o texto que passamos como um parâmetro. Mas se não passarmos nada,
ela imprime o texto default (padrão).

A saída será:

PARÂMETROS VARIÁVEIS
Algumas vezes queremos que nossas funções tenham uma quantidade variável de parâmetros. Para isso,
usamos o símbolo asterisco (*) nos nossos parâmetros. Tratamos então o parâmetro como uma sequência.
def print_soma(*numeros):
resultado = 0
for x in numeros:
resultado +=x
print(resultado)

Aqui passamos o parâmetro números. Este pode ser cinco, dez ou uma centena de números. Nós então
repetimos sobre este parâmetro, adicionamos cada valor à nossa soma e a imprimimos.
print_soma(10, 20, 30, 40)

A saída ficará assim:

pág.24
24/05/2022
BASICÃO EM PYTHON

ESCOPOS
A última coisa que iremos falar neste capítulo são os escopos. Os escopos não são somente importantes para
funções, mas também para loops, condições e outras estruturas. Basicamente, precisamos perceber a diferença
entre variáveis locais e globais.
def função():
numero = 10
print(numero)
print(numero) # Não funciona

Neste exemplo, você vê porque é importante. Quando definimos uma variável dentro de uma função, um loop,
uma condição ou qualquer coisa semelhante, esta variável não pode ser acessada do lado de fora daquela
estrutura. Ela não existe.
numero = 10
def funcao():
print(numero)

Isto por outro lado funciona. A variável numero foi definida do lado de fora da função, então ela pode ser vista
do lado de dentro da função. Mas você notará que não pode manipulá-la.

Para manipular um objeto que foi definido do lado de fora da função, precisamos defini-lo como global.
numero = 10
def funcao():
global numero
numero += 10
print (numero)

Usando a palavra-chave global podemos acessar completamente e manipular a variável.

Vamos ver isso na prática:

pág.25
24/05/2022
BASICÃO EM PYTHON

A saída será:

__________________________________________________________________________________________

__________________________________________________________________________________________

pág.26
24/05/2022
BASICÃO EM PYTHON

A saída agora ficará assim:

10 – Manipulação de Exceção
Programação está cheia de erros e exceções (exceptions). Se você codificou durante a leitura e experimentou
um pouco, você pode ter encontrado uma ou duas mensagens de erros. Esses erros podem também ser
chamados de exceptions. Eles encerram nosso script e leva a ruína o programa se eles não forem manipulados
apropriadamente.

tente dividir um número por zero e você obterá um Zero

Apenas tente dividir um número por zero e você obterá um ZeroDivisionError. Isto é porque uma divisão por
zero não é definida e nosso script não sabe como manipular. Então ele falha.

pág.27
24/05/2022
BASICÃO EM PYTHON

Outro exemplo:

Alternativamente, tente trocar os papeis de um texto ordinário dentro de um número. Você obterá um
ValueError e o script falha novamente.

TRY EXCEPT
Podemos manusear esses erros ou exceções definindo blocos try e except.

No bloco try colocamos o código que queremos executar e onde os erros ocorrerão. Depois definimos os blocos
except que diz ao nosso script o que fazer em caso dos erros respectivos. Em vez de falar, fornecemos código
que manuseia a situação.

Isto poderá ser uma simples mensagem de erro ou um algoritmo complexo.

Aqui definimos dois blocos except específicos para o ValueError e o ZeroDivisionError. Mas definimos também
um bloco except geral no caso de obtermos um erro que não se ajusta a esses dois tipos.

pág.28
24/05/2022
BASICÃO EM PYTHON

DECLARAÇÕES ELSE
Podemos também usar declarações else para código que é executado se nada de errado.

DECLARAÇÕES FINALLY
Se tivermos algum código que seria executado no final não importa o que aconteceu, podemos escrevê-lo num
bloco finally. Esse código será sempre executado, mesmo se uma exception permanecer não manipulada:

pág.29
24/05/2022
BASICÃO EM PYTHON

11 – OPERAÇÕES COM ARQUIVOS


Muitas vezes, precisaremos ler dados de arquivos externos ou salvar os dados em arquivos. Neste capítulo
daremos uma olhada e file streams (fluxos de arquivos) e as várias operações.

ABRINDO E FECHANDO ARQUIVOS


Antes de podermos ler ou escrever num arquivo, precisamos primeiro abrir um file stream. Este retorna o
respectivo arquivo como um objeto e nos permite lidar com ele.
arquivo = open(“meuarquivo.txt”, “r”)

Usamos a função open para abrir um novo file stream. Como parâmetro precisamos definir o nome do arquivo
e o access mode (falaremos sobre isso em segundos). A função retorna o stream e podemos salvá-lo na nossa
variável arquivo.

ACCESS MODES
Sempre que abrimos um arquivo em Python, usamos um certo access mode. Um access mode é a maneira em
que acessamos um arquivo. Por exemplo, ler ou escrever. A tabela seguinte dá a você um rápido overview sobre
os vários access mode.

ACCESS MODE
LETRA ACCESS MODE
r Leitura
r+ Ler e Escrever (Arquivo não truncado)
rb Leitura de Arquivo Binário
rb+ Ler e Escrever Arquivo Binário (Arquivo
não truncado)
w Escrever
w+ Ler e Escrever (Arquivo Truncado)
wb Escrever Arquivo Binário
wb+ Ler e Escrever Arquivo Binário (Arquivo
Binário)
a Appending
ab Appending Arquivo Binário
ab+ Ler e Appending Arquivo Binário

pág.30
24/05/2022
BASICÃO EM PYTHON

A diferença entre r+ ou rb+ e w+ ou wb+ é que w+ e wb+ sobrescreve arquivos existentes e cria um novo se ele
não existir. Este não é o caso para r+ e rb+.

ARQUIVOS CLOSING (FECHAMENTO)


Quando não precisarmos mais de nosso fluxo de arquivos aberto, devemos sempre fechá-lo. O Python faz isso
automaticamente em alguns casos, mas é considerado boa prática fechar os streams manualmente. Fechamos
um stream usando o método close.
arquivo = open(“meuarquivo.txt”, “r+”)
# CÓDIGO
arquivo.close()

DECLARAÇÃO WITH
Alternativamente, podemos abrir e fechar streams mais efetivamente usando declarações with. Uma declaração
with abre uma stream, executa o código identado (recuado) e depois fecha a stream.
with open(“meuarquivo.txt”,”r”) as arquivo:
#Algum código

Ela encurta o código e o torna mais fácil para não esquecer de fechar as suas streams.

LEITURA DE ARQUIVOS
Uma vez tendo um arquivo aberto num modo de leitura, podemos começar ler o seu conteúdo. Para isso,
usamos o método read.
arquivo = open(‘meuarquivo.txt’, ‘r’)
print(arquivo.read())
arquivo.close()

Aqui abrimos o arquivo no modo de leitura e depois imprimimos seu conteúdo. Podemos fazer o mesmo usando
a declaração with.
with open(‘meuarquivo’,’r’) as arquivo:
print(arquivo.read())

Mas nós não temos que ler o arquivo todo, se não quisermos. Podemos também ler os primeiros 20 ou 50
caracteres passando um parâmetro no método:
with open(‘meuarquivo’,’r’) as arquivo:
print(arquivo.read(50))

ESCREVENDO EM ARQUIVOS
Quando escrevemos num arquivo, precisamos perguntar se apenas queremos adicionar nosso texto ou se
queremos completamente sobrescrever um arquivo. Assim, precisamos escolher entre write e o modo
appending (anexação). Para escrever em geral usamos o método write.

pág.31
24/05/2022
BASICÃO EM PYTHON

arquivo = open(‘meuarquivo.txt’, ‘w’)


print(arquivo.write(“Alô Arquivo!”))
arquivo.flush()
arquivo.close()

Nós abrimos nosso arquivo no modo write (‘w’) e escrevemos nosso pequeno texto no arquivo. Note que o
texto não pega o que está escrito até nós flush (enviarmos) a stream. Nesse caso, não é necessário porque
quando fechamos uma stream ele envia (descarrega) automaticamente. Vamos observar a declaração with
alternativa novamente:
with open(‘meuarquivo’,’w’) as arquivo:
print(arquivo.write(“Alô Arquivo!”))

Se quisermos anexar (to append) nosso texto, apenas temos de mudar o access mode. Todo o resto
permanece o mesmo.
with open(‘meuarquivo’,’a’) as arquivo:
print(arquivo.write(“Alô Arquivo!”))

OUTRAS OPERAÇÕES
Agora se quisermos realizar outras operações para escrever, ler e anexar, precisaremos importar módulos
extras. As funções e classes básicas do Python estão disponíveis por padrão. Mas muitas coisas como
matemática, networking, threading e também operações adicionais de arquivos, exigem a importação de
módulos. Nesse caso precisamos importar o módulo os, que significa sistema operacional.
import os

Esta seria uma maneira de importar esse módulo. Mas se fizermos assim, precisaremos sempre especificar o
módulo quando usamos uma função. Para torna-lo mais fácil para nós, vamos fazer assim.
from os import *

Basicamente, o que estamos dizendo aqui é: Importe todas as funções e classes do módulo os. Note que as
declarações importantes de um script deverão sempre ser a primeira coisa no topo.

DELETANDO E RENOMEANDO
Para deletar e renomear arquivos temos duas funções muito simples do módulo os – a remove e a rename.
remove(“meuarquivo.txt”)
rename(“meuarquivo.txt”, “novoarquivo.txt”)

Podemos também usar a função rename para mover arquivos em diferentes diretórios. Mas o diretório tem
que já existir. Esta função não pode criar novos diretórios.
rename(“meuarquivo.txt”, “novodiretorio/meuarquivo.txt”)

pág.32
24/05/2022
BASICÃO EM PYTHON

OPERAÇÕES COM DIRETÓRIOS


Com o módulo os podemos também operar com diretórios. Podemos criar, deletar e navegar através deles.
mkdir(“newdir”)
chdir(“newdir”)
chdir(“..”)
rmdir(“newdir”)

Aqui criamos um novo diretório usando a função mkdir (make directory). Em seguida, vamos para esse
diretório com a função chdir (alterar diretório) e depois voltamos para o diretório anterior com a mesma
função. Por último, mas não menos importante, removemos o diretório com a função rmdir (remover
diretório).

Usando (“..”) navegamos de volta em um diretório. Além disso, se quisermos especificar um caminho inteiro
como “C:\Users\Python\Desktop\arquivo.txt”, teríamos que usar barras invertidas duplas, pois o Python usa
barras invertidas únicas para diferentes propósitos. Mas falaremos sobre isso no próximo capítulo com mais
detalhes.

12 – FUNÇÕES STRING
Mesmo que as strings sejam apenas textos ou sequências de caracteres, podemos aplicar muitas funções e
operações nelas. Como este é um livro para iniciantes, não entraremos muito em detalhes aqui, mas é
importante que você saiba como lidar com strings corretamente.

STRINGS COMO SEQUÊNCIAS

O primeiro print, imprime “Hello” e o segundo “World”. Observe que não imprimiu o caractere !

Outra coisa que podemos fazer é iterate (repetir) as strings com um for loop.

pág.33
24/05/2022
BASICÃO EM PYTHON

Neste exemplo, imprimimos os caracteres individuais um após o outro. Assim,

CARACTERES ESCAPE (FUGA)


Em strings podemos usar uma porção de diferentes escape characters. Esses são caracteres não imprimíveis
como tab ou new line. Eles todos são iniciados por barras invertidas, que é a razão do por quê precisamos usar
barra invertidas duplas para os caminhos (paths) de arquivos (veja o último capítulo).

A tabela seguinte resume os mais importantes destes caracteres escape. Se você estiver interessado em todos
os outros apenas use google mas você não precisará agora:

ESCAPE CHARACTERS
NOTAÇÃO DESCRIÇÃO
\b Backspace
\n Nova Linha
\s Espaço
\t Tab

FORMATAÇÃO DE STRING
Quando temos um texto que incluirá valores de variáveis, podemos usar o operador % e marcadores de
posição (placeholders), para inserir nossos valores:

pág.34
24/05/2022
BASICÃO EM PYTHON

Note que usamos diferentes marcadores de posição para diferentes tipos de dados. Usamos %s para strings e
%d para inteiros. A tabela seguinte mostra a você quais marcadores de posição são necessários para qual tipo
de dados.

PLACEHOLDERS
PLACEHOLDER TIPO DE DADO
%c Caractere
%s String
%d ou %i Inteiro
%f Float
%e Notação Exponencial

A saída do script acima seá:

Se você quiser torna-los mais geral sem especificar os tipos de dados, você pode usar a função format.

Aqui usamos as chaves como placeholders e inserimos os valores após usar a função format.

A saída agora fica:

pág.35
24/05/2022
BASICÃO EM PYTHON

FUNÇÕES STRING
Existe uma tonelada de funções string no Python e seria desnecessário e perda de tempo falar sobre todas elas
neste livro. Se você quiser um overview apenas saia online à procura delas. Um website, onde você pode
encontra-las é o W3Schools.

https://www.w3schools.com/python/python_ref_string.asp

Neste capítulo, entretanto, focaremos nas mais essenciais, mais interessantes e mais importantes. Aquelas
que você poderá precisar no futuro próximo.

FUNÇÕES DE MANIPULAÇÃO DE CASE


Temos cinco funções diferentes de manipuladores string de casos no Python. Vamos dar uma olhada para elas.

FUNÇÕES MANIPULADORAS DE CASE


FUNÇÃO DESCRIÇÃO
string.lower() Converte todas as letras para
minúsculas
string.upper() Converte todas as letras para
maiúsculas
string.title() Converte todas as letras para titlecase
string.capitalize() Converte a primeira letra para
maiúscula
string.swapcase() Troca o case de todas as letras

FUNÇÃO COUNT
Se você quiser contar quantas vezes uma string específica ocorre numa outra string, você pode usa a função
count.

pág.36
24/05/2022
BASICÃO EM PYTHON

Nesse caso, o número dois será impresso, pois a string “você” ocorre duas vezes.

FUNÇÃO FIND
Para encontrar a primeira ocorrência de uma certa string em outra string, usamos a função find.

Aqui o resultado é 12 porque a primeira ocorrência de “você” está no índice 7.

FUNÇÃO JOIN
Com a função join podemos juntar uma sequência a uma outra string e separar cada elemento por essa string
particular.

pág.37
24/05/2022
BASICÃO EM PYTHON

O resultado será:

FUNÇÃO REPLACE
A função replace troca uma string dentro de um texto por outra. No exemplo seguinte, trocamos o nome de
Ana pelo de Maria.

FUNÇÃO SPLIT
Se quisermos dividir partes específicas de uma string e coloca-las numa lista, usamos a função split.

pág.38
24/05/2022
BASICÃO EM PYTHON

ASPAS TRIPLAS
O último tópico deste capítulo é aspas triplas (triple quotes). Elas são apenas um modo de escrever strings de
múltiplas linhas sem a necessidade de caracteres escape.

O QUE VEM A SEGUIR


Você conseguiu! Cobrimos todos os fundamentos básicos do Python. Agora você entende como essa linguagem
é estruturada, mas também os princípios gerais de programação, como condições, loops e funções.
Definitivamente, agora você pode desenvolver uma calculadora básica ou outros aplicativos simples. Mas a
jornada está apenas começando. Esta é apenas a primeira parte da Série Python Bible. Cobrimos os tópicos para
iniciantes, mas a verdadeira diversão começa quando abordamos tópicos mais avançados, como programação
de rede, segmentação, aprendizagem de máquina, ciência de dados, finanças, redes neurais e muito mais. Com

pág.39
24/05/2022
BASICÃO EM PYTHON

este livro você tem uma excelente base para os próximos volumes da Python Bible e eu o encorajo a continuar
sua jornada.

A próxima parte será para programadores intermediários e avançados, aos quais você sabe pertencer. Portanto,
fique atento e continue codificando!

Por último, mas não menos importante, um pequeno lembrete. Este livro foi escrito para você, para que você
possa obter o máximo de valor possível e aprender a codificar de forma eficaz. Se você achar este livro valioso
ou achar que aprendeu algo novo, escreva uma resenha rápida na Amazon. É totalmente gratuito e leva cerca
de um minuto. Mas isso me ajuda a produzir mais livros de alta qualidade, dos quais você pode se beneficiar.

Obrigado!

pág.40
24/05/2022

Você também pode gostar