S02 - Atividade de Aprendizagem (2 de 2): Expressões Matemáticas
Visão Geral
Na aula anterior, você aprendeu como trabalhar com tipos de dados numéricos. Nesta aula, você aprenderá como resolver problemas mais interessantes sobre esse assunto.
Depois de dominar esses conceitos, você conseguirá escrever programas para resolver até os cálculos matemáticos ou científicos mais complicados. Basta adicionar mais variáveis e usar expressões mais complexas, pois os princípios envolvidos são os mesmos.
Material de Preparação
Link Direto: Bibliotecas
Link Direto: F-Strings
Arredondamento
Quando o computador armazena números de ponto flutuante (decimais), ele os armazena internamente na forma de notação científica binária, com um grande número de casas decimais.
Às vezes, você pode querer exibir números para o usuário sem exibir todas as casas decimais. Para fazer isso você precisa arredondá-los. Existem várias abordagens para arredondar números, dependendo do que você deseja que o programa armazene internamente e do que você deseja que ele exiba ao usuário. Uma das abordagens mais simples e comuns é permitir que o programa continue a armazenar o número de maneira precisa, mas formate-o de maneira adequada para o usuário quando for exibido.
Usando F-Strings (Strings Formatadas)
Para arredondar seus números apenas na exibição (mas continuar fazendo com que o computador armazene o valor completo internamente), você usará strings formatadas (f-strings). Você já as usa, mas agora aprenderá mais opções sobre elas.
Para usar uma string formatada, você deixa espaços reservados para suas variáveis usando chaves {}, então o valor da variável é inserido nessa posição da string. Isso pode ser feito de duas maneiras diferentes:
A maneira mais simples foi adicionada recentemente ao Python, e é colocar um f logo antes da sua string, da seguinte forma:
print(f"Há {contagem_de_carros} carros na estrada.")
Outra abordagem é não usar f antes da string, mas usar .format() depois da string, conforme mostrado abaixo:
print("Há {} carros na estrada.".format(contagem_de_carros))
O efeito dessas abordagens é o mesmo, mas a primeira que usa o "f" é um tipo de notação abreviada, para tornar as coisas mais simples e claras. Mas é importante conhecer a segunda abordagem, pois você a verá sendo utilizada em muitos exemplos de código na internet. Além disso, a segunda maneira é uma abordagem mais padrão que você verá em outras linguagens (por exemplo, Java, C#, etc.).
Para este curso, você pode usar qualquer uma das abordagens, mas a maior parte do material presumirá que você está usando a notação de string formatada mais simples.
Opções de Strings Formatadas
Existem muitas opções diferentes para formatar números usando strings formatadas. (Se tiver interesse, você pode ler a documentação oficial no site de operações comuns de string do Python. Mas avisamos desde já que o material é extenso.)
Resumindo, existem opções para alinhamento esquerdo/direito/centro, para expressão de números em diferentes bases (base 10 versus base 16), formatação de datas de muitas maneiras diferentes e muitas outras coisas. As formatações mais comuns que você provavelmente usará serão para definir o número de decimais, definir o separador para milhares (o ponto) ou usar notações científicas. Isso pode ser feito da seguinte maneira:
Definição do Número de Decimais a Serem Exibidos
Em uma string formatada, você define a precisão ou o número de decimais a serem exibidos colocando :.2f após o nome da variável (alterando 2 para o valor desejado).
Os dois pontos (
:) após o nome da variável indicam que você irá especificar como formatá-la.O ponto (
.) indica que você está configurando a precisão ou o número de casas decimais.O número (neste exemplo
2) indica que você gostaria que esse número de casas decimais fosse exibido.O
findica que você deseja notação de ponto fixo.
Isso exibirá o seguinte:
carros = 3
pessoas = 8
pessoas_por_carro = pessoas / carros
# Arredonde para 1 casa decimal
print(f"Há {pessoas_por_carro:.1f} pessoas em cada carro.")
# Saída: Há 2.7 pessoas em cada carro.
# Arredondar para 2 casas decimais
print(f"Há {pessoas_por_carro:.2f} pessoas em cada carro.")
# Saída: Há 2.67 pessoas em cada carro.
# Arredondar para 3 casas decimais
print(f"Há {pessoas_por_carro:.3f} pessoas em cada carro.")
# Saída: Há 2.667 pessoas em cada carro.
Notação Científica
Você pode dizer ao computador para exibir o número em notação científica ou notação "expoente" usando :.3e após sua variável. O 3 define a precisão e o e indica que você está usando a notação científica.
Isso exibirá o seguinte:
distancia = 9 * 1205 * 18
# Notação científica com 3 dígitos de precisão
print(f"A distância é: {distancia:.3e} metros.")
# Saída: A distância é: 1.952e+05 metros.
# Notação científica com 6 dígitos de precisão
print(f"A distância é: {distancia:.6e} metros.")
# Saída: A distância é: 1.952100e+05 metros.
Agrupamento de Milhares
Ao escrever números em um código, você não usa separadores de dígitos. Em outras palavras, você não escreve: 10.000.000, mas apenas 1000000. Recentemente, o Python adicionou uma notação que permite digitar usando sublinhados como 10_000_000 ou vírgulas como 10,000,000.
De qualquer forma, quando você deseja exibir números grandes para o usuário, você pode exibi-los com vírgulas ou sublinhados. Isso é feito usando :, ou :_ após o nome da variável.
Isso exibirá o seguinte:
numero_grande = 123456789
# Exibição sem formatação:
print(f"O número é: {numero_grande}")
# Saída: O número é: 123456789
# Exibição com formatação ",":
print(f"O número é: {numero_grande:,}")
# Saída: O número é: 123,456,789
# Exibição com formatação "_":
print(f"O número é: {numero_grande:_}")
# Saída: O número é: 123_456_789
Usando a Biblioteca Math
Uma das coisas que torna possível escrever programas grandes e complexos é utilizar códigos preexistentes escritos por outras pessoas. Quando alguém agrupa partes de seu código para disponibilizá-lo a outras pessoas, esse código pode ser chamado de biblioteca. Em cursos futuros, você aprenderá sobre isso com muito mais detalhes, inclusive como criar suas próprias bibliotecas.
O Python vem com muitas bibliotecas integradas. Uma delas é chamada de biblioteca de matemática ("math"), que contém funções e operações matemáticas comuns. Para usar o código desta biblioteca em seu programa, você precisará inclui-la fazendo uma importação. Você faz isso colocando o código import math no começo do seu programa. Por exemplo, se você quiser usar o valor de Pi incluído na biblioteca matemática, faça o seguinte:
import math
raio = 5
area = math.pi * (raio ** 2)
print(f"A área é: {area}")
# Saída: A área é: 78.53981633974483
Como você pode esperar, há muitas coisas disponíveis na biblioteca math. Você pode ver a lista de Funções Matemáticas na documentação oficial. Se você é um cientista ou engenheiro, vai querer se familiarizar com muitas dessas funções. Algumas funções que podem ser do seu interesse:
math.ceil(valor)– Arredonda ovalorpara cima até o próximo número inteiro.math.floor(valor)– Arredonda ovalorpara baixo até o próximo número inteiro.math.exp(valor)– Eleva e à potência dovalor.math.sin(valor)– Calcula a função trigonométrica seno dovalorem radianos.
Um exemplo:
import math
peso = 1.65
para_baixo = math.floor(peso)
print(para_baixo)
# Saída: 1
para_cima = math.ceil(peso)
print(para_cima)
# Saída: 2
Bom Estilo
Por fim, temos uma observação sobre a adoção de um bom estilo. Sempre que você escreve um programa, precisa estar ciente de que possivelmente seu programa precisará ser compreendido, reutilizado ou modificado por outras pessoas no futuro. Ele pode ser utilizado por outros membros do seu grupo, equipe, futuros funcionários da empresa, ou por você mesmo caso precise retornar ao seu programa depois de alguns meses, tentando lembrar do que fez.
Além disso, escrever código claro e bem formatado ajudará você a evitar bugs e problemas em seus programas enquanto os escreve.
Por esses motivos, é importante seguir as boas práticas de nomeação de variáveis e formatação de seu código. A maioria das empresas tem um guia de estilo rigoroso para os códigos escritos. Mas, de qualquer forma, é importante escrever um código claro e consistente.
Você continuará aprendendo mais sobre estilo neste e em cursos futuros. Mas, quanto a essa questão, temos algumas orientações a serem lembradas:
Os nomes das variáveis devem ser significativos e descritivos. Nomes como "cnt" em vez de "contagem" ou "a" em vez de "area" serão mais difíceis de usar posteriormente.
Em Python, as variáveis devem estar todas em letras minúsculas com sublinhados
_separando as palavras, como:musica_principal,nome_completooucontagem_total_de_palavras.Inclua um espaço antes e depois dos operadores:
# Estilo adequado
area = comprimento * largura
# Estilo inadequado:
area=largura*comprimento
area= comprimento * largura
area = comprimento*largura
area = comprimento *largura
Use linhas em branco para separar blocos de seu código que sejam semelhantes. Ao escrever uma redação, você a divide em parágrafos compostos de várias frases relacionadas umas às outras. Da mesma forma, quando você escreve programas, geralmente tem três ou quatro linhas juntas, então uma linha em branco antes do próximo grupo de três ou quatro linhas. O importante aqui não é o número de linhas, mas separar o código em blocos relacionados para facilitar a leitura.
Localização e Sistema Numérico Internacional
Existem muitos sistemas numéricos diferentes ao redor do mundo que utilizam pontos e vírgulas de forma ligeiramente diferente. Independentemente do país onde você vive, você foi introduzido ao sistema numérico em inglês no curso Pathway PC 101. Você notará que o Python usa esse mesmo sistema de numeração por padrão. Como essa notação é amplamente utilizada na maioria das linguagens de programação, é importante se familiarizar com ela, mesmo que não seja o sistema utilizado em sua língua nativa.
Independentemente da sua origem, pode haver momentos em que você precisará apresentar os resultados do seu programa em um formato cultural diferente daquele que ele produz naturalmente. Nesses casos, é importante saber como ajustar a saída para que os usuários possam interpretá-la facilmente em sua própria língua.
Este é um exemplo de como converter moeda para uma cultura específica:
# 1. Importe a biblioteca locale
import locale
# 2. Aqui você tem o valor que deseja formatar (você pode colocar qualquer valor)
moeda_valor = 1245.60
# 3. Esta parte é específica da cultura que você quer ter como saída
# Neste caso as variáveis estão configuradas para a cultura do Brasil
moeda_simbolo = "R$"
moeda_cultura = "pt_BR.UTF-8"
# 4. Configure os parâmetros de localização e converta o valor
locale.setlocale(locale.LC_ALL, moeda_cultura)
moeda_formatada = locale.currency(moeda_valor, grouping=True, symbol=moeda_simbolo)
# 5. Opcionalmente, imprima para verificar os resultados
print(moeda_formatada)
# Você pode configurar para obter os resultados em qualquer cultura que deseje
# Como para a Espanha que usa Euros
moeda_simbolo = "€"
moeda_cultura = "es_ES.UTF-8"
# Ou Ghana que usa Ghanaian Cedi e muitas outras
moeda_simbolo = "GHS"
moeda_cultura = "en_GH.UTF-8"
Você pode seguir um procedimento semelhante ao trabalhar com valores de data e hora. Aqui está um exemplo.
# 1. Importe a biblioteca datetime
from datetime import datetime
# 2. Aqui você tem os valores que deseja formatar (você pode colocar qualquer um)
data_hora = datetime.now()
# 3. Esta parte é específica da cultura que você quer ter como saída
# Você pode fazer uma pesquisa sobre padrões de datas e horas e convenções
# Esse formato é o usado na Europa:
formato_data_hora = "%d/%m/%Y %H:%M"
# 4. Converta e obtenha o valor
data_hora_formatada = data_hora.strftime(formato_data_hora)
# 5. Opcionalmente imprima para verificar o resultado
print(data_hora_formatada)
Você pode explorar diferentes culturas para ver os resultados e pesquisar online para descobrir algumas das outras opções que o Python oferece.
Instruções da Atividade
Pratique a resolução de problemas com variáveis e expressões e a exibição dos resultados.
O problema: Conversão de diferentes tipos de unidades
A temperatura, como muitos outros valores, pode ser medida em diferentes tipos de unidades. Nesse caso, você pode medir o valor dos graus em Fahrenheit, Celsius ou Kelvin. A conversão de uma escala para outra usa o mesmo cálculo repetidamente para diferentes valores de entrada.
Situações como essa são o caso perfeito para um programa que pode ser criado para realizar as etapas do cálculo.
Tarefa
Escreva um programa para converter valores de Fahrenheit para Celsius. Exiba o resultado com uma casa decimal de precisão.
Para converter graus Fahrenheit em Celsius, você precisa subtrair 32 do valor Fahrenheit e multiplicá-lo pela fração 5/9.
Veja abaixo um exemplo do programa executado:
Qual é a temperatura em Fahrenheit? 81
A temperatura em Celsius é de 27.2 graus.
Outro exemplo:
Qual é a temperatura em Fahrenheit? 12
A temperatura em Celsius é -11.1 graus.
Exemplo de Solução
Quando terminar seu programa, por favor, consulte o exemplo de solução para comparar sua abordagem com a apresentada.
Primeiro, trabalhe para concluir o programa sem consultar o exemplo de solução. Caso tenha trabalhado por um longo tempo e ainda enfrente dificuldades, sinta-se à vontade para usar o exemplo para ajudá-lo a finalizar seu programa.
Procedimento de Teste
Verifique se seu programa funciona corretamente seguindo cada etapa deste procedimento de teste:
Teste os valores nos exemplos desta página e faça com que seu programa gere os mesmos resultados.
Verifique se você está exibindo o resultado com precisão de 1 ponto decimal, conforme mostrado.
Tente converter 32 graus Fahrenheit (ponto de congelamento, que deve ser 0 graus Celsius) e 212 graus (ponto de ebulição, que deve ser 100 graus Celsius).
Tente converter 0 e um número negativo e certifique-se de que eles saiam conforme o esperado.
Verifique se você usou um bom estilo, verificando os nomes das variáveis utilizadas, bem como o uso de linhas e espaços em branco para os operadores.
Envio de Tarefa
Agora você concluiu todas as atividades de aprendizagem da semana!
Lembre-se de:
- Voltar ao Canvas e responder ao respectivo questionário.
Próxima Atividade
- S02 - Questionário: Variáveis e Expressões
Outros Links:
- Voltar para: Visão Geral da Semana | Página Inicial