0% acharam este documento útil (0 voto)
2 visualizações36 páginas

Introdução ao Python para Iniciantes

A apostila de Python para iniciantes apresenta a linguagem como uma ferramenta versátil e popular, abordando sua instalação em diferentes sistemas operacionais e introduzindo conceitos básicos como tipos de dados, variáveis e operadores. O documento também inclui exemplos práticos para ajudar os novos programadores a entenderem a sintaxe e a lógica do Python. Com uma abordagem clara e didática, a apostila visa facilitar o aprendizado e a aplicação da programação em Python.

Enviado por

Renato Pessoa
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações36 páginas

Introdução ao Python para Iniciantes

A apostila de Python para iniciantes apresenta a linguagem como uma ferramenta versátil e popular, abordando sua instalação em diferentes sistemas operacionais e introduzindo conceitos básicos como tipos de dados, variáveis e operadores. O documento também inclui exemplos práticos para ajudar os novos programadores a entenderem a sintaxe e a lógica do Python. Com uma abordagem clara e didática, a apostila visa facilitar o aprendizado e a aplicação da programação em Python.

Enviado por

Renato Pessoa
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Apostila de Python para Iniciantes

Introdução ao Python

Python é uma linguagem de programação de alto nível, interpretada, de script,


imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi criada por
Guido van Rossum no final dos anos 80 e lançada pela primeira vez em 1991. Python é
conhecida por sua sintaxe clara e legível, o que a torna uma excelente escolha para
iniciantes em programação.

Por que aprender Python?

Python é uma das linguagens de programação mais populares do mundo e sua


demanda no mercado de trabalho continua a crescer. Ela é amplamente utilizada em
diversas áreas, como:

Desenvolvimento Web: Com frameworks como Django e Flask.

Análise de Dados e Machine Learning: Com bibliotecas como Pandas, NumPy,


Scikit-learn e TensorFlow.

Automação de Tarefas: Scripts para automatizar tarefas repetitivas.

Inteligência Artificial: Desenvolvimento de algoritmos e sistemas inteligentes.

Desenvolvimento de Jogos: Com bibliotecas como Pygame.

Computação Científica e Numérica: Para simulações e cálculos complexos.

Sua versatilidade e a vasta comunidade de desenvolvedores tornam o Python uma


ferramenta poderosa para resolver uma ampla gama de problemas.

Instalação do Python

Para começar a programar em Python, você precisa instalá-lo em seu computador.


Recomendamos a instalação da versão mais recente do Python 3.
Windows

1. Acesse o site oficial do Python: [Link]

2. Baixe o instalador executável para Windows (geralmente a versão de 64 bits).

3. Execute o instalador. Muito importante: Marque a opção "Add Python X.Y to


PATH" durante a instalação. Isso permitirá que você execute Python a partir de
qualquer diretório no seu terminal.

4. Siga as instruções do instalador para concluir a instalação.

macOS

1. Acesse o site oficial do Python: [Link]

2. Baixe o instalador para macOS.

3. Execute o instalador e siga as instruções.

4. Python já vem pré-instalado em muitas versões do macOS, mas é recomendável


instalar a versão mais recente para desenvolvimento.

Linux

Python geralmente já vem pré-instalado na maioria das distribuições Linux. Você pode
verificar a versão instalada abrindo o terminal e digitando:

python3 --version

Se precisar instalar ou atualizar, use o gerenciador de pacotes da sua distribuição:

Debian/Ubuntu: bash sudo apt update sudo apt install python3 sudo apt
install python3-pip

Fedora/RHEL: bash sudo dnf install python3 sudo dnf install python3-
pip

Primeiro Programa em Python

Tradicionalmente, o primeiro programa que se escreve em qualquer linguagem é o


"Olá, Mundo!".
1. Abra um editor de texto (como VS Code, Sublime Text, Notepad++ ou até mesmo
o Bloco de Notas).

2. Crie um novo arquivo e digite o seguinte código:

python print("Olá, Mundo!")

3. Salve o arquivo com o nome [Link] (a extensão .py é importante).

4. Abra o terminal ou prompt de comando, navegue até o diretório onde você


salvou o arquivo e execute-o com o comando:

bash python [Link]

Você deverá ver a mensagem "Olá, Mundo!" impressa no terminal. Parabéns, você
acabou de executar seu primeiro programa em Python!

Tipos de Dados e Variáveis

Em programação, dados são as informações que seu programa manipula. Variáveis


são "contêineres" que armazenam esses dados. Cada dado tem um tipo, que define o
que pode ser feito com ele.

Variáveis

Uma variável em Python é criada no momento em que você atribui um valor a ela. Não
é necessário declarar o tipo da variável explicitamente, pois Python é uma linguagem
de tipagem dinâmica. O tipo da variável é determinado pelo valor que ela armazena.

Regras para nomes de variáveis:

Devem começar com uma letra (a-z, A-Z) ou um underscore (_).

Não podem começar com um número.

Podem conter letras, números e underscores.

São case-sensitive (idade é diferente de Idade).

Não podem ser palavras reservadas do Python (como if , else , for , while ,
etc.).
Exemplos:

nome = "Alice"
idade = 30
altura = 1.75
is_estudante = True

print(nome) # Saída: Alice


print(idade) # Saída: 30
print(altura) # Saída: 1.75
print(is_estudante) # Saída: True

Tipos de Dados Built-in

Python possui vários tipos de dados embutidos (built-in) para lidar com diferentes
tipos de informações.

1. Números

Python suporta três tipos numéricos:

int (inteiros): Números inteiros, positivos ou negativos, sem casas decimais.


python numero_inteiro = 10 print(type(numero_inteiro)) # Saída:
<class 'int'>

float (ponto flutuante): Números reais, com casas decimais. python


numero_decimal = 10.5 print(type(numero_decimal)) # Saída: <class
'float'>

complex (números complexos): Números com parte real e imaginária (ex: 3 +


5j ). python numero_complexo = 3 + 5j print(type(numero_complexo)) #
Saída: <class 'complex'>

2. Strings ( str )

Strings são sequências de caracteres, usadas para representar texto. Podem ser
definidas com aspas simples ( ' ) ou duplas ( " ).

mensagem = "Olá, Python!"


nome = 'Maria'

print(mensagem)
print(nome)
print(type(mensagem)) # Saída: <class 'str'>
Strings são imutáveis, o que significa que uma vez criadas, não podem ser alteradas.
Operações com strings geralmente retornam novas strings.

3. Booleanos ( bool )

Booleanos representam valores de verdade: True (verdadeiro) ou False (falso). São


frequentemente usados em estruturas de controle de fluxo.

esta_chovendo = True
tem_sol = False

print(esta_chovendo)
print(type(esta_chovendo)) # Saída: <class 'bool'>

4. Listas ( list )

Listas são coleções ordenadas e mutáveis de itens. Podem conter itens de diferentes
tipos de dados e são definidas com colchetes [] .

frutas = ["maçã", "banana", "cereja"]


numeros = [1, 2, 3, 4, 5]
mista = ["texto", 10, True, 3.14]

print(frutas[0]) # Saída: maçã (acesso por índice, começa em 0)


[Link]("laranja") # Adiciona um item
print(frutas) # Saída: ['maçã', 'banana', 'cereja', 'laranja']
print(type(frutas)) # Saída: <class 'list'>

5. Tuplas ( tuple )

Tuplas são coleções ordenadas e imutáveis de itens. São definidas com parênteses
() .

coordenadas = (10.0, 20.0)


cores = ("vermelho", "verde", "azul")

print(coordenadas[0]) # Saída: 10.0


# [Link](30.0) # Isso geraria um erro, pois tuplas são imutáveis
print(type(coordenadas)) # Saída: <class 'tuple'>

6. Dicionários ( dict )

Dicionários são coleções não ordenadas e mutáveis de pares chave-valor. Cada chave
deve ser única e imutável (geralmente strings ou números).
pessoa = {"nome": "João", "idade": 25, "cidade": "São Paulo"}

print(pessoa["nome"]) # Saída: João


pessoa["idade"] = 26 # Altera um valor
pessoa["profissao"] = "Engenheiro" # Adiciona um novo par
print(pessoa) # Saída: {'nome': 'João', 'idade': 26, 'cidade': 'São
Paulo', 'profissao': 'Engenheiro'}
print(type(pessoa)) # Saída: <class 'dict'>

7. Conjuntos ( set )

Conjuntos são coleções não ordenadas de itens únicos. São úteis para remover
duplicatas e realizar operações de conjunto (união, interseção, etc.). Definidos com
chaves {} ou pela função set() .

numeros_unicos = {1, 2, 3, 3, 4, 5}
print(numeros_unicos) # Saída: {1, 2, 3, 4, 5} (duplicatas removidas)

letras = set("abracadabra")
print(letras) # Saída: {'r', 'b', 'a', 'c', 'd'} (ordem pode variar)
print(type(letras)) # Saída: <class 'set'>

Conversão de Tipos (Type Casting)

Você pode converter valores de um tipo para outro usando funções de conversão de
tipo.

numero_str = "123"
numero_int = int(numero_str)
print(numero_int) # Saída: 123
print(type(numero_int)) # Saída: <class 'int'>

numero_float = float("3.14")
print(numero_float) # Saída: 3.14
print(type(numero_float)) # Saída: <class 'float'>

inteiro_para_str = str(50)
print(inteiro_para_str) # Saída: "50"
print(type(inteiro_para_str)) # Saída: <class 'str'>

Compreender os tipos de dados e como usá-los com variáveis é fundamental para


escrever programas eficazes em Python. No próximo capítulo, exploraremos os
operadores que nos permitem realizar cálculos e comparações com esses dados.
Operadores

Operadores são símbolos especiais que realizam operações em um ou mais operandos


(valores ou variáveis). Em Python, existem diversos tipos de operadores, cada um com
uma finalidade específica.

1. Operadores Aritméticos

Usados para realizar operações matemáticas básicas.

Operador Descrição Exemplo Resultado

+ Adição 10 + 5 15

- Subtração 10 - 5 5

* Multiplicação 10 * 5 50

/ Divisão 10 / 3 3.33...

% Módulo (resto) 10 % 3 1

** Exponenciação 2 ** 3 8

// Divisão inteira 10 // 3 3

Exemplos:

a = 15
b = 4

print(f"Adição: {a + b}") # Saída: Adição: 19


print(f"Subtração: {a - b}") # Saída: Subtração: 11
print(f"Multiplicação: {a * b}") # Saída: Multiplicação: 60
print(f"Divisão: {a / b}") # Saída: Divisão: 3.75
print(f"Módulo: {a % b}") # Saída: Módulo: 3
print(f"Exponenciação: {a ** 2}") # Saída: Exponenciação: 225
print(f"Divisão Inteira: {a // b}") # Saída: Divisão Inteira: 3

2. Operadores de Atribuição

Usados para atribuir valores a variáveis. O operador de atribuição mais comum é o = .


Existem também operadores de atribuição combinados.
Exemplo
Operador Equivalente Descrição
Original

= x = 10 x = 10 Atribui o valor 10 a x

+= x += 5 x = x + 5 Adiciona 5 a x e atribui o resultado

-= x -= 3 x = x - 3 Subtrai 3 de x e atribui o resultado

*= x *= 2 x = x * 2 Multiplica x por 2 e atribui o resultado

/= x /= 4 x = x / 4 Divide x por 4 e atribui o resultado

%= x %= 3 x = x % 3 Atribui o resto da divisão de x por 3

x = x **
**= x **= 2 Eleva x à potência de 2 e atribui o resultado
2

x = x // Atribui o resultado da divisão inteira de x


//= x //= 2
2 por 2

Exemplos:

x = 10
print(f"Valor inicial de x: {x}") # Saída: Valor inicial de x: 10

x += 5
print(f"x depois de x += 5: {x}") # Saída: x depois de x += 5: 15

x *= 2
print(f"x depois de x *= 2: {x}") # Saída: x depois de x *= 2: 30

x /= 3
print(f"x depois de x /= 3: {x}") # Saída: x depois de x /= 3: 10.0

3. Operadores de Comparação

Usados para comparar dois valores e retornar um valor booleano ( True ou False ).
Operador Descrição Exemplo Resultado

== Igual a 10 == 5 False

!= Diferente de 10 != 5 True

> Maior que 10 > 5 True

< Menor que 10 < 5 False

>= Maior ou igual a 10 >= 10 True

<= Menor ou igual a 10 <= 5 False

Exemplos:

a = 10
b = 20

print(f"a == b: {a == b}") # Saída: a == b: False


print(f"a != b: {a != b}") # Saída: a != b: True
print(f"a > b: {a > b}") # Saída: a > b: False
print(f"a < b: {a < b}") # Saída: a < b: True
print(f"a >= b: {a >= b}") # Saída: a >= b: False
print(f"a <= b: {a <= b}") # Saída: a <= b: True

4. Operadores Lógicos

Usados para combinar expressões condicionais e retornar um valor booleano.

Operador Descrição Exemplo Resultado

Retorna True se ambas as condições forem True and


and False
True False

Retorna True se pelo menos uma condição for


or True or False True
True

not Inverte o valor booleano not True False

Exemplos:
idade = 25
tem_carteira = True

print(f"Pode dirigir (idade >= 18 and tem_carteira): {idade >= 18 and


tem_carteira}") # Saída: Pode dirigir (idade >= 18 and tem_carteira): True

tem_sol = False
esta_quente = True

print(f"Ir à praia (tem_sol or esta_quente): {tem_sol or esta_quente}") #


Saída: Ir à praia (tem_sol or esta_quente): True

esta_chovendo = False
print(f"Não está chovendo (not esta_chovendo): {not esta_chovendo}") # Saída:
Não está chovendo (not esta_chovendo): True

5. Operadores de Identidade

Usados para comparar se dois objetos são o mesmo objeto na memória, não apenas
se têm o mesmo valor.

Operador Descrição Exemplo Resultado

Retorna True se ambas as variáveis apontam para o


is x is y True
mesmo objeto

Retorna True se ambas as variáveis não apontam x is not


is not False
para o mesmo objeto y

Exemplos:

x = [1, 2, 3]
y = [1, 2, 3]
z = x

print(f"x == y: {x == y}") # Saída: x == y: True (valores são iguais)


print(f"x is y: {x is y}") # Saída: x is y: False (objetos diferentes na
memória)
print(f"x is z: {x is z}") # Saída: x is z: True (z aponta para o mesmo
objeto que x)

6. Operadores de Associação (Membership Operators)

Usados para verificar se um valor está presente em uma sequência (string, lista, tupla,
conjunto, dicionário).
Operador Descrição Exemplo Resultado

Retorna True se o valor estiver presente na


in 'a' in 'banana' True
sequência

Retorna True se o valor não estiver presente 'z' not in


not in True
na sequência 'banana'

Exemplos:

frutas = ["maçã", "banana", "cereja"]

print(f"'maçã' in frutas: {'maçã' in frutas}") # Saída: 'maçã' in frutas:


True
print(f"'uva' not in frutas: {'uva' not in frutas}") # Saída: 'uva' not in
frutas: True

texto = "Python é divertido"


print(f"'divertido' in texto: {'divertido' in texto}") # Saída: 'divertido' in
texto: True

Compreender e saber usar esses operadores é crucial para construir a lógica dos seus
programas em Python. Eles são a base para realizar cálculos, tomar decisões e
manipular dados de forma eficaz.

Estruturas de Controle

As estruturas de controle permitem que você altere o fluxo de execução do seu


programa, tomando decisões e repetindo blocos de código. Elas são fundamentais
para criar programas dinâmicos e interativos.

1. Estruturas Condicionais ( if , elif , else )

As estruturas condicionais são usadas para executar um bloco de código apenas se


uma determinada condição for verdadeira. Em Python, usamos as palavras-chave if ,
elif (else if) e else .

if Statement

O bloco de código dentro de um if só é executado se a condição for True .


idade = 18

if idade >= 18:


print("Você é maior de idade.")

if-else Statement

O else é executado se a condição do if for False .

idade = 16

if idade >= 18:


print("Você é maior de idade.")
else:
print("Você é menor de idade.")

if-elif-else Statement

Use elif para verificar múltiplas condições. O Python verifica as condições em


ordem, e o primeiro bloco cuja condição é True é executado.

nota = 75

if nota >= 90:


print("Conceito A")
elif nota >= 80:
print("Conceito B")
elif nota >= 70:
print("Conceito C")
else:
print("Conceito D")

Importante: A indentação (espaços em branco no início da linha) é crucial em Python


para definir blocos de código. Erros de indentação resultarão em erros de sintaxe.

2. Estruturas de Repetição (Laços)

As estruturas de repetição, ou laços (loops), permitem que você execute um bloco de


código várias vezes.

for Loop

O laço for é usado para iterar sobre uma sequência (como uma lista, tupla, string, ou
range) ou outros objetos iteráveis.
# Iterando sobre uma lista
frutas = ["maçã", "banana", "cereja"]
for fruta in frutas:
print(fruta)

# Iterando sobre uma string


for letra in "Python":
print(letra)

# Usando range() para iterar um número específico de vezes


# range(5) gera números de 0 a 4
for i in range(5):
print(i)

# range(inicio, fim) - de inicio (inclusive) até fim (exclusive)


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

# range(inicio, fim, passo) - de inicio até fim, pulando de 'passo' em 'passo'


for i in range(0, 10, 2):
print(i)

while Loop

O laço while executa um bloco de código enquanto uma condição for True . É
importante garantir que a condição eventualmente se torne False para evitar um
laço infinito.

contador = 0
while contador < 5:
print(contador)
contador += 1 # Incrementa o contador para evitar laço infinito

break e continue

break : Usado para sair de um laço imediatamente.

```python for i in range(10): if i == 5: break # Sai do laço quando i for 5 print(i)

Saída: 0, 1, 2, 3, 4
```

continue : Usado para pular a iteração atual de um laço e ir para a próxima.


```python for i in range(5): if i == 2: continue # Pula a impressão quando i for 2
print(i)

Saída: 0, 1, 3, 4
```

Dominar as estruturas de controle é essencial para escrever programas que podem


responder a diferentes entradas e automatizar tarefas repetitivas. No próximo
capítulo, abordaremos as funções, que permitem organizar seu código em blocos
reutilizáveis.

Funções

Funções são blocos de código reutilizáveis que realizam uma tarefa específica. Elas
ajudam a organizar o código, torná-lo mais legível e evitar a repetição. Em Python,
você define uma função usando a palavra-chave def .

Definindo uma Função

Uma função é definida com def , seguida pelo nome da função, parênteses () (que
podem conter parâmetros) e dois pontos : . O corpo da função é indentado.

def saudar():
print("Olá! Bem-vindo ao curso de Python.")

# Chamando a função
saudar()

Parâmetros e Argumentos

Funções podem receber informações através de parâmetros. Quando você chama a


função, os valores que você passa são chamados de argumentos.
def saudar_nome(nome):
print(f"Olá, {nome}! Como você está?")

saudar_nome("Alice")
saudar_nome("Bob")

Múltiplos Parâmetros

Uma função pode ter múltiplos parâmetros, separados por vírgulas.

def somar(a, b):


resultado = a + b
print(f"A soma de {a} e {b} é {resultado}")

somar(10, 5)
somar(7, 3)

Retorno de Valores ( return )

Funções podem retornar um valor usando a palavra-chave return . Isso permite que o
resultado da função seja usado em outras partes do seu programa.

def multiplicar(x, y):


return x * y

produto = multiplicar(4, 6)
print(f"O produto é: {produto}") # Saída: O produto é: 24

def eh_par(numero):
if numero % 2 == 0:
return True
else:
return False

print(f"10 é par? {eh_par(10)}") # Saída: 10 é par? True


print(f"7 é par? {eh_par(7)}") # Saída: 7 é par? False

Se uma função não tiver uma instrução return explícita, ela retornará None por
padrão.

Parâmetros Padrão (Default Parameters)

Você pode definir valores padrão para os parâmetros de uma função. Se um


argumento não for fornecido para esse parâmetro, o valor padrão será usado.
def saudar_cidade(nome, cidade="Mundo"):
print(f"Olá, {nome}! Bem-vindo a {cidade}.")

saudar_cidade("Carlos") # Saída: Olá, Carlos! Bem-vindo a Mundo.


saudar_cidade("Ana", "Paris") # Saída: Olá, Ana! Bem-vindo a Paris.

Argumentos de Palavra-Chave (Keyword Arguments)

Você pode passar argumentos para uma função usando o nome do parâmetro, o que
torna o código mais legível e permite que você passe os argumentos em qualquer
ordem.

def descrever_carro(marca, modelo, ano):


print(f"Marca: {marca}, Modelo: {modelo}, Ano: {ano}")

descrever_carro(marca="Toyota", ano=2020, modelo="Corolla")


descrever_carro(modelo="Civic", marca="Honda", ano=2022)

Funções Anônimas (Lambda Functions)

Funções lambda são pequenas funções anônimas (sem nome) que podem ter
qualquer número de argumentos, mas apenas uma expressão. São úteis para tarefas
simples e rápidas.

somar_lambda = lambda a, b: a + b
print(f"Soma com lambda: {somar_lambda(2, 3)}") # Saída: Soma com lambda: 5

# Usando lambda com funções de ordem superior (como sorted, filter, map)
lista_numeros = [1, 5, 2, 8, 3]
lista_ordenada = sorted(lista_numeros, key=lambda x: x % 2) # Ordena por par/
ímpar
print(f"Lista ordenada por par/ímpar: {lista_ordenada}") # Saída: Lista
ordenada por par/ímpar: [2, 8, 1, 5, 3]

Funções são um dos pilares da programação modular e eficiente. Elas permitem que
você divida seu programa em partes menores e gerenciáveis, facilitando o
desenvolvimento e a manutenção. No próximo capítulo, exploraremos as estruturas
de dados mais avançadas que Python oferece.
Estruturas de Dados

Estruturas de dados são formas de organizar e armazenar dados de maneira eficiente,


permitindo acesso e manipulação otimizados. Python oferece várias estruturas de
dados built-in que são muito poderosas e fáceis de usar.

1. Listas ( list )

Listas são coleções ordenadas, mutáveis e que permitem elementos duplicados. São
definidas usando colchetes [] .

# Criação de uma lista


minha_lista = [1, 2, 3, "quatro", 5.0]
print(f"Lista: {minha_lista}")

# Acesso a elementos (indexação)


print(f"Primeiro elemento: {minha_lista[0]}") # Saída: 1
print(f"Último elemento: {minha_lista[-1]}") # Saída: 5.0

# Fatiamento (slicing)
print(f"Elementos do índice 1 ao 3: {minha_lista[1:4]}") # Saída: [2, 3,
'quatro']

# Modificação de elementos
minha_lista[0] = 10
print(f"Lista modificada: {minha_lista}") # Saída: [10, 2, 3, 'quatro', 5.0]

# Adicionar elementos
minha_lista.append("novo") # Adiciona ao final
minha_lista.insert(1, "inserido") # Adiciona em um índice específico
print(f"Lista com novos elementos: {minha_lista}")

# Remover elementos
minha_lista.remove("quatro") # Remove o primeiro 'quatro' encontrado
pop_elemento = minha_lista.pop(2) # Remove e retorna o elemento do índice 2
print(f"Lista após remoção: {minha_lista}")
print(f"Elemento removido com pop: {pop_elemento}")

# Iterar sobre uma lista


for item in minha_lista:
print(item)

# Tamanho da lista
print(f"Tamanho da lista: {len(minha_lista)}")

2. Tuplas ( tuple )

Tuplas são coleções ordenadas, imutáveis e que permitem elementos duplicados. São
definidas usando parênteses () .
# Criação de uma tupla
minha_tupla = (1, 2, 3, "quatro", 5.0)
print(f"Tupla: {minha_tupla}")

# Acesso a elementos (indexação e fatiamento funcionam como em listas)


print(f"Primeiro elemento: {minha_tupla[0]}") # Saída: 1

# Tentativa de modificação (resultará em erro)


# minha_tupla[0] = 10 # TypeError: 'tuple' object does not support item
assignment

# Iterar sobre uma tupla


for item in minha_tupla:
print(item)

# Tamanho da tupla
print(f"Tamanho da tupla: {len(minha_tupla)}")

Tuplas são frequentemente usadas para dados que não devem ser alterados, como
coordenadas geográficas ou configurações.

3. Dicionários ( dict )

Dicionários são coleções não ordenadas, mutáveis e que armazenam dados em pares
de chave-valor. Cada chave deve ser única e imutável. São definidos usando chaves
{} .
# Criação de um dicionário
meu_dicionario = {"nome": "Alice", "idade": 30, "cidade": "São Paulo"}
print(f"Dicionário: {meu_dicionario}")

# Acesso a valores por chave


print(f"Nome: {meu_dicionario["nome"]}") # Saída: Alice

# Modificação de valores
meu_dicionario["idade"] = 31
print(f"Idade modificada: {meu_dicionario["idade"]}") # Saída: 31

# Adicionar novos pares chave-valor


meu_dicionario["profissao"] = "Engenheira"
print(f"Dicionário com nova chave: {meu_dicionario}")

# Remover pares chave-valor


del meu_dicionario["cidade"]
print(f"Dicionário após remoção: {meu_dicionario}")

# Iterar sobre chaves, valores ou itens


print("Chaves:")
for chave in meu_dicionario.keys():
print(chave)

print("Valores:")
for valor in meu_dicionario.values():
print(valor)

print("Itens (chave, valor):")


for chave, valor in meu_dicionario.items():
print(f"{chave}: {valor}")

# Verificar se uma chave existe


print(f"'nome' está no dicionário? {'nome' in meu_dicionario}") # Saída: True

4. Conjuntos ( set )

Conjuntos são coleções não ordenadas de elementos únicos. São úteis para operações
matemáticas de conjunto (união, interseção, diferença) e para remover duplicatas. São
definidos usando chaves {} ou a função set() .
# Criação de um conjunto
meu_conjunto = {1, 2, 3, 2, 4, 5}
print(f"Conjunto: {meu_conjunto}") # Saída: {1, 2, 3, 4, 5} (duplicatas
removidas)

# Adicionar elementos
meu_conjunto.add(6)
print(f"Conjunto após adicionar: {meu_conjunto}")

# Remover elementos
meu_conjunto.remove(3)
print(f"Conjunto após remover: {meu_conjunto}")

# Operações de conjunto
conjunto_a = {1, 2, 3, 4}
conjunto_b = {3, 4, 5, 6}

print(f"União: {conjunto_a.union(conjunto_b)}") # Saída: {1, 2, 3, 4,


5, 6}
print(f"Interseção: {conjunto_a.intersection(conjunto_b)}") # Saída: {3, 4}
print(f"Diferença (A - B): {conjunto_a.difference(conjunto_b)}") # Saída: {1,
2}

# Verificar se um elemento está no conjunto


print(f"5 está no conjunto A? {5 in conjunto_a}") # Saída: False

Escolher a estrutura de dados correta para cada situação é fundamental para a


eficiência e clareza do seu código. Com essas estruturas, você pode lidar com uma
grande variedade de problemas de armazenamento e manipulação de dados em
Python.

Exercícios

Para consolidar o conhecimento adquirido, é fundamental praticar. Esta seção


apresenta exercícios para cada tópico abordado, além de desafios de lógica de
programação. Tente resolvê-los antes de consultar as soluções.

Exercícios de Introdução ao Python

1. Olá, Mundo Personalizado: Modifique o programa "Olá, Mundo!" para que ele
imprima uma mensagem de saudação com o seu nome.

```python
Seu código aqui
```

2. Cálculo Simples: Escreva um programa que calcule a soma de dois números


inteiros e imprima o resultado.

```python

Seu código aqui


```

Exercícios de Tipos de Dados e Variáveis

1. Informações Pessoais: Crie variáveis para armazenar seu nome (string), idade
(inteiro), altura (float) e se você é estudante (booleano). Imprima o tipo de cada
variável.

```python

Seu código aqui


```

2. Conversão de Temperatura: Crie uma variável com a temperatura em Celsius


(ex: 25). Converta essa temperatura para Fahrenheit usando a fórmula F = C *
9/5 + 32 e imprima o resultado.

```python
Seu código aqui
```

3. Manipulação de String: Crie uma string com uma frase. Imprima o primeiro e o
último caractere da frase. Em seguida, imprima a frase em letras maiúsculas.

```python

Seu código aqui


```

Exercícios de Operadores

1. Calculadora Básica: Peça ao usuário para digitar dois números e uma operação
(+, -, *, /). Use operadores aritméticos para realizar a operação e imprimir o
resultado.

```python

Seu código aqui


```

2. Verificação de Idade: Peça ao usuário sua idade. Use operadores de


comparação para verificar se a idade é maior ou igual a 18 e imprima True ou
False .

```python
Seu código aqui
```

3. Condição Múltipla: Crie duas variáveis booleanas, tem_dinheiro e tem_fome .


Use operadores lógicos para verificar se você pode comprar comida (tem
dinheiro E tem fome) e imprima o resultado.

```python

Seu código aqui


```

Exercícios de Estruturas de Controle

1. Par ou Ímpar: Peça ao usuário um número inteiro. Use uma estrutura


condicional para determinar se o número é par ou ímpar e imprima a mensagem
correspondente.

```python

Seu código aqui


```

2. Contagem Regressiva: Use um laço for para imprimir uma contagem


regressiva de 10 até 1. Em seguida, imprima "Lançar!".

```python
Seu código aqui
```

3. Tabuada: Peça ao usuário um número. Use um laço for para imprimir a


tabuada desse número de 1 a 10.

```python

Seu código aqui


```

4. Adivinhe o Número: Crie um número secreto (ex: 7). Use um laço while para
pedir ao usuário para adivinhar o número. Dê dicas se o número é maior ou
menor, e pare quando ele acertar.

```python

Seu código aqui


```

Exercícios de Funções

1. Função de Saudação: Crie uma função chamada saudar_usuario que receba


um nome como parâmetro e imprima "Olá, [nome]!". Chame a função com seu
nome.

```python
Seu código aqui
```

2. Calculadora de Média: Crie uma função chamada calcular_media que receba


três notas como parâmetros e retorne a média. Imprima o resultado.

```python

Seu código aqui


```

3. Verificador de Palíndromo: Crie uma função que receba uma string e retorne
True se ela for um palíndromo (lê-se igual de trás para frente) e False caso
contrário. Ignore espaços e case-sensitivity.

```python

Seu código aqui


```

Exercícios de Estruturas de Dados

1. Lista de Compras: Crie uma lista de compras com pelo menos 5 itens. Adicione
um novo item, remova um item existente e imprima a lista final.

```python
Seu código aqui
```

2. Informações de Livro: Crie um dicionário para representar um livro, com chaves


como titulo , autor , ano e genero . Acesse e imprima o título e o autor.
Adicione uma nova chave editora .

```python

Seu código aqui


```

3. União de Conjuntos: Crie dois conjuntos de números. Encontre e imprima a


união e a interseção desses conjuntos.

```python

Seu código aqui


```

Desafios de Lógica de Programação

1. Sequência de Fibonacci: Escreva um programa que gere os primeiros n termos


da sequência de Fibonacci. A sequência começa com 0 e 1, e cada termo
subsequente é a soma dos dois anteriores (0, 1, 1, 2, 3, 5, 8...). Peça ao usuário o
valor de n .

```python
Seu código aqui
```

2. Número Primo: Crie uma função que receba um número inteiro e retorne True
se ele for primo (divisível apenas por 1 e por ele mesmo) e False caso contrário.

```python

Seu código aqui


```

3. Inverter String: Escreva uma função que receba uma string e retorne a string
invertida, sem usar funções built-in de inversão (como [::-1] ).

```python

Seu código aqui


```

4. Contagem de Vogais: Crie uma função que receba uma string e retorne o
número de vogais (a, e, i, o, u, maiúsculas e minúsculas) presentes na string.

```python

Seu código aqui


```

5. Fatorial: Escreva uma função que calcule o fatorial de um número inteiro não
negativo. O fatorial de n (n!) é o produto de todos os inteiros positivos menores
ou iguais a n . Por exemplo, 5! = 5 * 4 * 3 * 2 * 1 = 120.

```python

Seu código aqui


```

6. Remover Duplicatas de Lista: Crie uma função que receba uma lista com
elementos duplicados e retorne uma nova lista contendo apenas os elementos
únicos, mantendo a ordem original.

```python

Seu código aqui


```

7. Soma de Dígitos: Escreva uma função que receba um número inteiro e retorne a
soma de seus dígitos. Por exemplo, se o número for 123, a soma deve ser 1 + 2 + 3
= 6.

```python

Seu código aqui


```

8. Maior Elemento de uma Lista: Crie uma função que receba uma lista de
números e retorne o maior elemento da lista sem usar a função max() .

```python
Seu código aqui
```

9. Ordenação Simples: Implemente uma função que ordene uma lista de números
em ordem crescente sem usar a função sort() ou sorted() .

```python

Seu código aqui


```

10. Jogo da Forca Simplificado: Crie um jogo da forca simples. Escolha uma palavra
secreta. O usuário tenta adivinhar letras. Se acertar, a letra é revelada. Se errar,
ele perde uma "vida". Limite o número de erros.

```python

Seu código aqui


```

Soluções dos Exercícios

Esta seção contém as soluções para os exercícios propostos. Tente resolver os


exercícios por conta própria antes de consultar as soluções. Elas servem como guia e
para ver diferentes abordagens.

Soluções de Introdução ao Python

1. Olá, Mundo Personalizado:

python nome = input("Qual é o seu nome? ") print(f"Olá, {nome}!")


2. Cálculo Simples:

python num1 = 10 num2 = 20 soma = num1 + num2 print(f"A soma de


{num1} e {num2} é: {soma}")

Soluções de Tipos de Dados e Variáveis

1. Informações Pessoais:

```python nome = "Seu Nome" idade = 25 altura = 1.70 is_estudante = True

print(f"Nome: {nome}, Tipo: {type(nome)}") print(f"Idade: {idade}, Tipo:


{type(idade)}") print(f"Altura: {altura}, Tipo: {type(altura)}") print(f"É estudante:
{is_estudante}, Tipo: {type(is_estudante)}") ```

2. Conversão de Temperatura:

python celsius = 25 fahrenheit = celsius * 9/5 + 32 print(f"{celsius}


°C é igual a {fahrenheit}°F")

3. Manipulação de String:

python frase = "Python é uma linguagem poderosa" print(f"Primeiro


caractere: {frase[0]}") print(f"Último caractere: {frase[-1]}")
print(f"Frase em maiúsculas: {[Link]()}")

Soluções de Operadores

1. Calculadora Básica:

```python num1 = float(input("Digite o primeiro número: ")) operacao =


input("Digite a operação (+, -, *, /): ") num2 = float(input("Digite o segundo
número: "))

if operacao == '+': resultado = num1 + num2 elif operacao == '-': resultado = num1
- num2 elif operacao == '*': resultado = num1 * num2 elif operacao == '/': if num2
!= 0: resultado = num1 / num2 else: resultado = "Erro: Divisão por zero!" else:
resultado = "Operação inválida!"

print(f"Resultado: {resultado}") ```

2. Verificação de Idade:
python idade = int(input("Digite sua idade: ")) maior_idade = idade
>= 18 print(f"É maior de idade? {maior_idade}")

3. Condição Múltipla:

```python tem_dinheiro = True tem_fome = True

pode_comprar_comida = tem_dinheiro and tem_fome print(f"Pode comprar


comida? {pode_comprar_comida}") ```

Soluções de Estruturas de Controle

1. Par ou Ímpar:

```python numero = int(input("Digite um número inteiro: "))

if numero % 2 == 0: print(f"O número {numero} é par.") else: print(f"O número


{numero} é ímpar.") ```

2. Contagem Regressiva:

python for i in range(10, 0, -1): print(i) print("Lançar!")

3. Tabuada:

```python numero = int(input("Digite um número para ver a tabuada: "))

for i in range(1, 11): print(f"{numero} x {i} = {numero * i}") ```

4. Adivinhe o Número:

```python import random

numero_secreto = [Link](1, 10) tentativa = 0

while True: tentativa = int(input("Adivinhe o número secreto (entre 1 e 10): ")) if


tentativa == numero_secreto: print("Parabéns! Você acertou!") break elif
tentativa < numero_secreto: print("Tente um número maior.") else: print("Tente
um número menor.") ```

Soluções de Funções

1. Função de Saudação:
```python def saudar_usuario(nome): print(f"Olá, {nome}!")

saudar_usuario("Maria") ```

2. Calculadora de Média:

```python def calcular_media(nota1, nota2, nota3): return (nota1 + nota2 +


nota3) / 3

media = calcular_media(7.5, 8.0, 9.0) print(f"A média é: {media:.2f}") ```

3. Verificador de Palíndromo:

```python def eh_palindromo(texto): texto_limpo = "".join([Link]() for char


in texto if [Link]()) return texto_limpo == texto_limpo[::-1]

print(f""""Arara" é palíndromo? {eh_palindromo("Arara")}""") print(f""""Ame a


ema" é palíndromo? {eh_palindromo("Ame a ema")}""") print(f""""Python" é
palíndromo? {eh_palindromo("Python")}""") ```

Soluções de Estruturas de Dados

1. Lista de Compras:

```python lista_compras = ["Arroz", "Feijão", "Macarrão", "Carne", "Leite"]


print(f"Lista inicial: {lista_compras}")

lista_compras.append("Pão") print(f"Lista após adicionar: {lista_compras}")

lista_compras.remove("Feijão") print(f"Lista após remover: {lista_compras}")


```

2. Informações de Livro:

```python livro = { "titulo": "O Pequeno Príncipe", "autor": "Antoine de Saint-


Exupéry", "ano": 1943, "genero": "Fábula" }

print(f"Título: {livro["titulo"]}") print(f"Autor: {livro["autor"]}")

livro["editora"] = "Agir" print(f"Livro com editora: {livro}") ```

3. União de Conjuntos:

```python conjunto1 = {1, 2, 3, 4, 5} conjunto2 = {4, 5, 6, 7, 8}


uniao = [Link](conjunto2) intersecao =
[Link](conjunto2)

print(f"Conjunto 1: {conjunto1}") print(f"Conjunto 2: {conjunto2}") print(f"União:


{uniao}") print(f"Interseção: {intersecao}") ```

Soluções de Desafios de Lógica de Programação

1. Sequência de Fibonacci:

```python def fibonacci(n): if n <= 0: return [] elif n == 1: return [0] else: lista_fib =
[0, 1] while len(lista_fib) < n: proximo_termo = lista_fib[-1] + lista_fib[-2]
lista_fib.append(proximo_termo) return lista_fib

num_termos = int(input("Quantos termos da sequência de Fibonacci você quer


gerar? ")) print(fibonacci(num_termos)) ```

2. Número Primo:

```python def eh_primo(numero): if numero <= 1: return False for i in range(2,


int(numero**0.5) + 1): if numero % i == 0: return False return True

print(f"7 é primo? {eh_primo(7)}") print(f"10 é primo? {eh_primo(10)}") print(f"2


é primo? {eh_primo(2)}") ```

3. Inverter String:

```python def inverter_string(s): invertida = "" for char in s: invertida = char +


invertida return invertida

print(f"String original: Python, Invertida: {inverter_string("Python")}")


print(f"String original: Hello, Invertida: {inverter_string("Hello")}") ```

4. Contagem de Vogais:

```python def contar_vogais(texto): vogais = "aeiouAEIOU" contador = 0 for char


in texto: if char in vogais: contador += 1 return contador

print(f"Número de vogais em 'Programação': {contar_vogais("Programação")}")


print(f"Número de vogais em 'Inteligencia Artificial': {contar_vogais("Inteligencia
Artificial")}") ```

5. Fatorial:
```python def fatorial(n): if n < 0: return "Número não pode ser negativo" elif n
== 0: return 1 else: resultado = 1 for i in range(1, n + 1): resultado *= i return
resultado

print(f"Fatorial de 5: {fatorial(5)}") print(f"Fatorial de 0: {fatorial(0)}")


print(f"Fatorial de 7: {fatorial(7)}") ```

6. Remover Duplicatas de Lista:

```python def remover_duplicatas(lista): lista_unica = [] for item in lista: if item


not in lista_unica: lista_unica.append(item) return lista_unica

lista_com_duplicatas = [1, 2, 2, 3, 4, 4, 5, 1] print(f"Lista original:


{lista_com_duplicatas}") print(f"Lista sem duplicatas:
{remover_duplicatas(lista_com_duplicatas)}") ```

7. Soma de Dígitos:

```python def soma_digitos(numero): soma = 0 for digito in str(numero): soma


+= int(digito) return soma

print(f"Soma dos dígitos de 123: {soma_digitos(123)}") print(f"Soma dos dígitos


de 9876: {soma_digitos(9876)}") ```

8. Maior Elemento de uma Lista:

```python def maior_elemento(lista): if not lista: return None # Retorna None se


a lista estiver vazia maior = lista[0] for elemento in lista: if elemento > maior:
maior = elemento return maior

numeros = [3, 1, 4, 1, 5, 9, 2, 6] print(f"O maior elemento da lista {numeros} é:


{maior_elemento(numeros)}") ```

9. Ordenação Simples (Bubble Sort):

```python def ordenar_lista(lista): n = len(lista) for i in range(n): for j in range(0, n


- i - 1): if lista[j] > lista[j+1]: lista[j], lista[j+1] = lista[j+1], lista[j] # Troca os
elementos return lista

lista_desordenada = [64, 34, 25, 12, 22, 11, 90] print(f"Lista desordenada:
{lista_desordenada}") print(f"Lista ordenada:
{ordenar_lista(lista_desordenada)}") ```
10. Jogo da Forca Simplificado:

```python import random

def jogo_da_forca(): palavras = ["python", "programacao", "computador",


"desenvolvimento", "inteligencia"] palavra_secreta =
[Link](palavras).lower() letras_descobertas = ["_" for _ in
palavra_secreta] letras_tentadas = set() vidas = 6

print("Bem-vindo ao Jogo da Forca!")


print("_".join(letras_descobertas))

while vidas > 0 and "_" in letras_descobertas:


tentativa = input("\nDigite uma letra: ").lower()

if len(tentativa) != 1 or not [Link]():


print("Por favor, digite apenas uma letra válida.")
continue

if tentativa in letras_tentadas:
print("Você já tentou essa letra. Tente outra.")
continue

letras_tentadas.add(tentativa)

if tentativa in palavra_secreta:
print(f"Boa! A letra '{tentativa}' está na palavra.")
for i, letra in enumerate(palavra_secreta):
if letra == tentativa:
letras_descobertas[i] = letra
else:
vidas -= 1
print(f"Ops! A letra '{tentativa}' não está na palavra. Você tem
{vidas} vidas restantes.")

print(" ".join(letras_descobertas))
print(f"Letras já tentadas: {',
'.join(sorted(list(letras_tentadas)))}")

if "_" not in letras_descobertas:


print(f"\nParabéns! Você adivinhou a palavra: {palavra_secreta}")
else:
print(f"\nQue pena! Suas vidas acabaram. A palavra era:
{palavra_secreta}")
Para jogar, descomente a linha abaixo:

jogo_da_forca()
```

Você também pode gostar