S01 - Atividades de Aprendizagem (1 de 2): Revisão de Python
O CSE 111 baseia-se nos conceitos do CSE 110. Para ser bem-sucedido, é importante que você se lembre e entenda os conceitos do CSE 110. Na aula 1, você fará uma revisão dos principais conceitos de programação do CSE 110.
Conceitos
Aqui está uma lista de conceitos e assuntos de programação Python do CSE 110 que você deve rever durante esta aula.
Comentários
Um comentário é uma anotação que ajuda a entender o código. O computador ignora comentários. Em Python, eles começam com # e vão até o fim da linha.
# Este é um comentário porque
# começa com o símbolo de hash (#).
Variáveis
Uma variável é um espaço na memória que armazena um valor e tem um nome e um tipo de dado. Em Python, usamos = para atribuir valores. Durante a execução, valor e tipo podem mudar.
comprimento = 5
tempo = 7.2
durante_voo = True
nome = "Maria"
Tipos de Dados
Python tem muitos tipos de dados, incluindo str, bool, int, float, list e dict. A maioria dos tipos de dados que você usará em seus programas no CSE 111 são mostrados na lista a seguir.
-
Uma str (string) é qualquer texto entre aspas simples ou duplas, digitado pelo usuário ou presente em um arquivo de texto. Por exemplo:
saudacao = "Olá" texto = "23" -
Uma bool (variável booleana) é uma variável que armazena apenas
True(Verdadeiro) ouFalse(Falso). Por exemplo:encontrado = True -
Um int (inteiro) é um número inteiro, como 14. Ele não pode ter uma parte fracionária ou dígitos após o ponto decimal. Por exemplo:
x = 14 -
Um float (número de ponto flutuante) é um número que pode ter uma parte fracionária ou dígitos após o ponto decimal, como 7.51.
Em Python, usamos o ponto (.) como separador decimal, por convenção. Por exemplo:amostra = 7.51 -
Uma list (lista) é uma coleção de valores. Cada valor em uma lista é chamado de elemento, e é armazenado em um índice exclusivo. O objetivo principal de uma lista é armazenar muitos elementos de forma eficiente. Em um programa Python, é possível criar uma lista usando colchetes ([ e ]) e separando os elementos com vírgulas (,). Por exemplo, aqui estão duas listas chamadas
coreseamostras:Você estudará listas na semana 4 deste curso.cores = ["amarelo", "vermelho", "verde", "amarelo", "azul"] amostras = [6.5, 7.2, 7.0, 8.1, 7.2, 6.8, 6.8] -
Um dict (dicionário) é uma coleção de itens. Cada item é um par de chave-valor. O objetivo principal de um dicionário é permitir que um computador encontre itens rapidamente. Em um programa Python, é possível criar um dicionário usando chaves ({ e }) e separando os itens com vírgulas (,). Por exemplo:Você estudará dicionários na semana 4 deste curso.
estudantes = { "42-039-4736": "João Silva", "61-315-0160": "Maria Oliveira", "10-450-1203": "Ana Soares", "75-421-2310": "Carlos Santos", "07-103-5621": "Mariana Lima" }
É possível converter dados entre diferentes tipos. Por exemplo, para transformar qualquer tipo de dado em uma str(), usamos a função str(). Para converter uma string em um número inteiro, utilizamos a função int(). Já para converter uma string em um número de ponto flutuante, usamos a função float().
As funções int() e float() são especialmente úteis quando trabalhamos com entradas do usuário, pois elas sempre são lidas como strings. Assim, podemos convertê-las para números, permitindo cálculos e outras operações. Veja o programa no exemplo 2 abaixo.
Entrada do Usuário
Em um programa Python, usamos a função input() para obter a entrada de um usuário em uma janela de terminal. A função input sempre retorna uma string.
texto = input("Por favor, digite seu nome: ")
cor = input("Qual sua cor favorita?")
Exibindo Resultados
Em Python, usamos a função print() para exibir informações na tela. A forma mais prática de mostrar texto e números juntos é usando uma string literal formatada (conhecida como f-string).
print(f"Frequência cardíaca: {avaliacao}")
O programa Python no exemplo 1 cria dez variáveis diferentes. Algumas das variáveis são do tipo str, algumas do tipo bool, algumas do tipo int e algumas do tipo float. O programa usa f-strings para exibir o nome, o tipo de dados e o valor de cada variável.
# Exemplo 1
# Cria variáveis de diferentes tipos de dados e então
# Exibe os nomes das variáveis, tipos de dados e valores.
a = "O nome dela é " # string
b = "Isabella" # string
c = a + b # string mais string forma string
print(f"a: {type(a)} {a}")
print(f"b: {type(b)} {b}")
print(f"c: {type(c)} {c}")
print()
d = False # booleana
e = True # booleana
print(f"d: {type(d)} {d}")
print(f"e: {type(e)} {e}")
print()
f = 15 # inteiro
g = 7.62 # ponto flutuante
h = f + g # inteiro mais ponto flutuante gera ponto flutuante
print(f"f: {type(f)} {f}")
print(f"g: {type(g)} {g}")
print(f"h: {type(h)} {h}")
print()
i = "True" # string por causa das aspas ao redor
j = "2.718" # string por causa das aspas ao redor
print(f"i: {type(i)} {i}")
print(f"j: {type(j)} {j}")
> python exemplo_1.py a: <class 'str'> O nome dela é b: <class 'str'> Isabella c: <class 'str'> O nome dela é Isabella d: <class 'bool'> False e: <class 'bool'> True f: <class 'int'> 15 g: <class 'float'> 7.62 h: <class 'float'> 22.62 i: <class 'str'> True j: <class 'str'> 2.718
No exemplo 2, o programa Python cria seis variáveis diferentes, algumas do tipo string, algumas do tipo int e algumas do tipo float. As linhas 3–4 e 6–8 do exemplo 2 demonstram que, não importa o que o usuário digite, a função input() sempre retorna uma string. As linhas 11 e 12 mostram como usar as funções int() e float() para converter uma string em um número para que possam ser usados em cálculos.
# Exemplo 2
# A função input sempre retorna uma string.
k = input("Por favor, digite um número: ") # string
m = input("Por favor, digite outro número: ") # string
n = k + m # string mais string gera string
print(f"k: {type(k)} {k}")
print(f"m: {type(m)} {m}")
print(f"n: {type(n)} {n}")
print()
# As funções int e float convertem uma string em um número.
p = int(input("Por favor, digite um número: ")) # int
q = float(input("Por favor, digite outro número: ")) # ponto flutuante
r = p + q # inteiro mais ponto flutuante gera ponto flutuante
print(f"p: {type(p)} {p}")
print(f"q: {type(q)} {q}")
print(f"r: {type(r)} {r}")
> python exemplo_2.py Por favor, digite um número: 6 Por favor, digite outro número: 4 k: <class 'str'> 6 m: <class 'str'> 4 n: <class 'str'> 64 Por favor, digite um número: 5 Por favor, digite outro número: 3 p: <class 'int'> 5 q: <class 'float'> 3.0 r: <class 'float'> 8.0
Aritmética
Python tem muitos operadores aritméticos, incluindo potência (**), negação (-), multiplicação (*), divisão (/), divisão inteira (//), módulo (%), adição (+) e subtração (-).
O operador de potência (**) às vezes é chamado de exponenciação e faz com que um computador eleve um número base a um expoente. Por exemplo, o seguinte código Python faz com que o computador calcule e armazene 125 na variável resultado porque o valor em x é 5 e o valor em y é 3, enquanto 5 ** 3 ou 53 ou 5 elevado ao expoente 3 é 125.
x = 5
y = 3
resultado = x ** y
O operador de módulo (%) calcula o resto da divisão. Por exemplo, o código Python abaixo armazena o número 2 na variável resultado. O valor de x é 17 e o de y é 3. A expressão 17 % 3 divide 17 por 3, resultando em 5 com resto 2.
x = 17
y = 3
resultado = x % y
Aqui estão mais alguns exemplos do resultado do operador módulo.
print(f"21 % 5 == {21 % 5}")
print(f"45 % 5 == {45 % 5}")
print(f"5 % 1 == {5 % 1}")
print(f"3 % 8 == {3 % 8}")
print(f"-3 % 8 == {-3 % 8}")
print(f"3 % -8 == {3 % -8}")
print(f"-3 % -8 == {-3 % -8}")
21 % 5 == 1 45 % 5 == 0 5 % 1 == 0 3 % 8 == 3 -3 % 8 == 5 3 % -8 == -5 -3 % -8 == -3
Para mais informações, leia as respostas nesta pergunta do Stack Overflow sobre o operador de módulo em Python e números negativos.
Precedência do Operador
Quando escrevemos uma expressão aritmética que contém mais de um operador, o computador executa os operadores de acordo com sua precedência, também conhecida como ordem das operações. Esta tabela mostra a precedência dos operadores aritméticos.
| Operadores | Descrição | Precedência |
|---|---|---|
| ( ) | parênteses | mais alta |
| ** | exponenciação (potência) | ↑ |
| - | negação | | |
| * / // % | multiplicação, divisão, divisão inteira, módulo | | |
| + - | adição, subtração | ↓ |
| = | atribuição | mais baixa |
Se esta é a primeira vez que você se depara com a precedência de operadores aritméticos, assista a este vídeo da Khan Academy: Introdução à Ordem das Operações (12 minutos).
O programa Python no exemplo 3 recebe a entrada do usuário e a converte em dois números nas linhas 7 e 8. Então, na linha 10, o programa calcula o comprimento de um cabo a partir dos dois números. Por fim, na linha 13, o programa usa uma f-string para exibir o comprimento arredondado para duas casas decimais.
# Exemplo 3
# Considerando a distância que um cabo deve percorrer e a distância
# que ele afundará no meio, este programa calcula o
# comprimento do cabo.
# Obtém as entradas do usuário e converte de
# strings para números de ponto flutuante.
distancia = float(input("Distância que o cabo deve percorrer, em metros: "))
afundar = float(input("Distância que o cabo afundará, em metros: "))
# Usa os números para calcular o comprimento do cabo.
comprimento = distancia + (8 * afundar**2) / (3 * distancia)
# Exibe o comprimento do cabo no
# terminal para o usuário ver.
print(f"Comprimento do cabo, em metros: {comprimento:.2f}")
> python exemplo_3.py Distância que o cabo deve percorrer, em metros: 500 Distância que o cabo afundará, em metros: 18.5 Comprimento do cabo, em metros: 501.83
No exemplo 3, a aritmética escrita na linha 13 vem de uma fórmula bem conhecida. Considerando a distância que um cabo deve percorrer e a distância vertical que o cabo poderá ceder ou afundar no meio, a fórmula para calcular o comprimento do cabo é:
Operadores Abreviados
A linguagem de programação Python inclui muitos operadores de atribuição ampliada, também conhecidos como operadores abreviados. Todos os operadores abreviados têm a mesma precedência que o operador de atribuição (=). Aqui está uma lista de alguns operadores abreviados do Python:
**= *= /= //= %= += -=
Para entender o que os operadores abreviados fazem e por que o Python os inclui, imagine um programa que calcula o preço de uma pizza. O preço de uma pizza grande com queijo e sem outros ingredientes é R$10.95. O preço de cada ingrediente, como presunto, calabresa, azeitonas e abacaxi, é R$1.45. Aqui está um pequeno programa de exemplo que pergunta ao usuário o número de ingredientes e calcula o preço de uma pizza:
# Exemplo 4
# Calcula o preço total de uma pizza.
# O preço base de uma pizza grande é R$10.95
preco = 10.95
# Pergunta ao usuário a quantidade de ingredientes.
quantidade_de_ingredientes = int(input("Quantos ingredientes? "))
# Calcula o custo dos ingredientes.
preco_por_ingrediente = 1.45
custo_dos_ingredientes = quantidade_de_ingredientes * preco_por_ingrediente
# Adiciona o custo dos ingredientes ao preço da pizza.
preco = preco + custo_dos_ingredientes
# Exibe o preço para o usuário ver.
print(f"Preço: R${preco:.2f}")
> python exemplo_4.py
Quantos ingredientes? 3
Preço: R$15.30
O computador obtém o valor da variável preco (que é 10.95), soma o valor armazenado em custo_dos_ingredientes e armazena o resultado novamente na variável preco. O Python oferece uma forma abreviada para isso: o operador +=, que combina adição (+) com atribuição (=). Assim, podemos reescrever a linha 11 desta maneira:
preco += custo_dos_ingredientes
Esta instrução com o operador abreviado é equivalente à instrução na linha 11 do exemplo 4, ou seja, as duas instruções fazem com que o computador faça a mesma coisa. O exemplo 5 contém o mesmo programa do exemplo 4, mas usa o operador abreviado += na linha 11.
# Exemplo 5
# Calcula o preço total de uma pizza.
# O preço base de uma pizza grande é R$10.95
preco = 10.95
# Pergunta ao usuário a quantidade de ingredientes.
quantidade_de_ingredientes = int(input("Quantos ingredientes? "))
# Calcula o custo dos ingredientes.
preco_por_ingrediente = 1.45
custo_dos_ingredientes = quantidade_de_ingredientes * preco_por_ingrediente
# Adiciona o custo dos ingredientes ao preço da pizza.
preco += custo_dos_ingredientes
# Exibe o preço para o usuário ver.
print(f"Preço: R${preco:.2f}")
> python exemplo_5.py
Quantos ingredientes? 3
Preço: R$15.30
Instruções If
Em Python, usamos instruções if para fazer com que o computador tome decisões; As instruções if também são chamadas de instruções de seleção, pois o computador seleciona um grupo de instruções para executar e ignora o outro grupo de instruções.
Existem seis operadores de comparação que podemos usar em uma instrução if:
| < | menor que |
| <= | menor ou igual |
| > | maior que |
| >= | maior ou igual |
| == | igual a |
| != | não é igual a |
O exemplo 6 verifica se um número é maior que 500.
# Exemplo 6
# Obtém o saldo da conta do usuário como um número.
saldo = float(input("Digite o saldo da conta: "))
# Se o saldo for maior que 500, então
# calcule e adicione juros ao saldo.
if saldo > 500:
juros = saldo * 0.03
saldo += juros
# Exibe o saldo.
print(f"saldo: {saldo:.2f}")
> python exemplo_6.py Digite o saldo da conta: 350 saldo: 350.0 > python exemplo_6.py Digite o saldo da conta: 525 saldo: 540.75
Se você escreveu programas em outras linguagens de programação, como JavaScript, Java ou C++, sempre usou chaves para marcar o início e o fim do corpo de uma instrução if. Entretanto, observe no exemplo 6 que as instruções if em Python não usam chaves. Em vez disso, digitamos dois-pontos (:) após a comparação da instrução if, conforme mostrado na linha 6. Em seguida, recuamos todas as instruções que estão no corpo da instrução if, conforme mostrado nas linhas 7 e 8. O corpo da instrução if termina com a primeira linha de código que não é recuada, como a linha 10.
Pode parecer estranho não usar chaves para marcar o início e o fim do corpo de uma instrução if. No entanto, o método Python nos força a escrever código em que o recuo corresponde à funcionalidade ou, em outras palavras, a maneira como recuamos o código corresponde à maneira como o computador executará o código.
Instruções if… elif… else
Cada instrução if pode ter uma instrução else, como mostrado no exemplo 7 na linha 11. Podemos combinar else e if na palavra-chave elif, como mostrado nas linhas 7 e 9.
# Exemplo 7
# Obtém o custo de um item do usuário.
custo = float(input("Por favor, digite o custo: "))
# Determina uma taxa de desconto com base no custo.
if custo < 100:
taxa = 0.10
elif custo < 250:
taxa = 0.15
elif custo < 400:
taxa = 0.18
else:
taxa = 0.20
# Calcula o valor do desconto
# e o custo com desconto.
desconto = custo * taxa
custo -= desconto
# Exibe o custo com desconto para o usuário.
print(f"Após o desconto, você pagará {custo:.2f}")
> python exemplo_7.py
Por favor, digite o custo: 300
Após o desconto, você pagará 246.00
Operadores Lógicos
Python inclui dois operadores lógicos: as palavras-chave and e or, que podemos usar para combinar duas comparações. Python também inclui o operador lógico "not". Observe que em Python os operadores lógicos são literalmente as palavras: and, or e not, e não símbolos como em outras linguagens de programação:
if motorista >= 54 or (motorista >= 32 and passageiro >= 54):
mensagem = "Aproveite o passeio!"
Precisa de mais ajuda?
Se tiver alguma coisa na lista anterior que você não conhece bem, vale a pena revisar. Aqui estão algumas maneiras de revisá-los:
- Revise o material do CSE 110
- Use seu mecanismo de busca favorito para encontrar tutoriais sobre os assuntos que você precisa de ajuda.
- Use a IA como tutor, pedindo para ela ajudar você a entender o princípio com o qual você precisa de ajuda.
- Publique uma pergunta no Microsoft Teams.
- Agende um horário com um tutor. O link de tutoria pode ser encontrado no seu curso do Canvas.
- Leia a documentação do Python para as funções/recursos que você precisa de ajuda em https://docs.python.org/pt-br/3.13/
Resumo
Durante esta aula, você vai rever os conceitos de programação que aprendeu no CSE 110. Esses conceitos incluem como fazer o seguinte:
-
escrever um comentário
-
usar as funções
inputeprint -
usar as funções
intefloatpara converter um valor de uma string em um número -
armazenar um valor em uma variável
-
realizar cálculos aritméticos
-
escrever instruções
if … elif … else -
usar os operadores lógicos
and,orenot
Atividade
Objetivo
Escrever um programa em Python que receba a entrada de um usuário, use variáveis, execute operações aritméticas e exiba os resultados para o usuário.
Declaração do Problema
Ao se exercitar fisicamente para fortalecer seu coração, você deve manter sua frequência cardíaca dentro de uma faixa por pelo menos 20 minutos. Para encontrar essa faixa, subtraia sua idade de 220. Essa diferença é sua frequência cardíaca máxima por minuto. Seu coração simplesmente não baterá mais rápido que esse máximo (220 − idade). Ao se exercitar para fortalecer seu coração, você deve manter sua frequência cardíaca entre 65% e 85% da frequência cardíaca máxima.
Tarefa
Escreva um programa em Python chamado frequencia_cardiaca.py que pergunte a idade de uma pessoa e calcule e exiba a frequência mais lenta (65% da frequência máxima) e a mais rápida (85% da frequência máxima) necessárias para fortalecer o coração. Para começar, copie e cole o código abaixo em seu programa e use-o como um esboço enquanto escreve o restante. Observe que, em um programa Python, uma string entre aspas triplas no topo do arquivo atua como um comentário para todo o programa.
"""
Quando você se exercita fisicamente para fortalecer seu coração,
deve manter sua frequência cardíaca dentro de uma faixa por pelo menos 20
minutos. Para encontrar essa faixa, subtraia sua idade de 220. Essa
diferença é sua frequência cardíaca máxima por minuto. Seu coração
simplesmente não baterá mais rápido que esse máximo (220 - idade).
Ao se exercitar para fortalecer seu coração, você deve manter sua
frequência cardíaca entre 65% e 85% da frequência cardíaca máxima.
"""
Procedimento de Teste
Verifique se seu programa funciona corretamente seguindo cada etapa deste procedimento de teste:
-
Execute seu programa e digite a entrada mostrada abaixo. Certifique-se de que a saída do seu programa corresponda à saída abaixo.
> python frequencia_cardiaca.py Por favor, digite sua idade: 23 Ao se exercitar para fortalecer o coração, você deve manter sua frequência cardíaca entre 128 e 167 batimentos por minuto. -
Execute seu programa usando sua idade ou a idade de um dos seus pais. Use uma calculadora para garantir que a saída esteja correta.
Exemplo de Solução
Quando terminar seu programa, consulte o exemplo de solução para comparar com o seu.
Primeiro, procure concluir o programa sem olhar o exemplo de solução. No entanto, se já tiver trabalhado nele por bastante tempo e ainda estiver com dificuldades, sinta-se à vontade para usá-lo como apoio para finalizar seu programa.
Ponderar
Durante esta tarefa, você escreveu um programa em Python que recebe a entrada de um usuário, usa variáveis, executa operações aritméticas e exibe os resultados para o usuário. Como você deve ter aprendido a escrever esse tipo de programa no CSE 110, esta tarefa pode ter sido bem fácil. Se esta tarefa foi difícil para você, reveja os conceitos do CSE 110 e os programas que escreveu durante o curso.
Links Úteis:
- Voltar para: Visão Geral da Semana | Página Inicial