CSE 110: Introdução à Programação

S02 - Atividade de Aprendizagem (1 de 2): Variáveis ​​Numéricas

Visão Geral

Na aula anterior, você aprendeu como armazenar palavras em variáveis ​​e exibi-las posteriormente no programa. Nesta aula, você também aprenderá como trabalhar com números, incluindo calcular fórmulas matemáticas e outros tipos de expressões, ou combinações de variáveis ​​e operações.

Para muitos programadores, trabalhar com cálculos e manipular dados numéricos é a principal razão por que escrevem programas. Por exemplo, atualmente os cientistas usam computadores para simular interações complexas que seriam muito difíceis de resolver à mão.

Material de Preparação

Tipos de Dados

Até este ponto, você trabalhou com um tipo de dado chamado string, que pode ser uma sequência de qualquer tipo de caractere (letras, números, símbolos, espaços etc.), como "O livro de: 1 Néfi", "cachorrinho caramelo" ou "byui-cse.github.io/cse110-course".

Uma sequência de números entre aspas, como "48212", é interpretada como uma string. Para que possa ser utilizada em fórmulas ou expressões matemáticas, é necessário convertê-la para um tipo numérico, permitindo que seja armazenada internamente como um número. Caso contrário, o Python tratará essa sequência da mesma forma que uma cadeia de caracteres, sem reconhecer seu valor numérico.

Assista aos vídeos a seguir para obter mais informações:

Link Direto: Tipos de Dados e Variáveis Numéricas

Link Direto: Convertendo Strings para Números

Usando Diferentes Tipos de Dados

Conforme mostrado acima, quando um dado é armazenado em uma variável, o programa o trata como sendo de um determinado tipo (como uma string ou um número inteiro). Você deve estar ciente dos diferentes tipos de dados quando quiser exibi-los juntos, como quando quiser exibir números no meio de uma frase ou texto.

A maneira mais fácil de exibir números junto com texto é usar uma string formatada, também chamada de f-string:


numero = 7
print(f"O número é {numero}.")

Isso é simples e funciona bem, além de ser a forma preferida de exibir um número junto com o texto em uma função print(). Mas, para usar diferentes tipos de dados de maneira adequada, você precisará de um conhecimento um pouco mais profundo sobre eles e também sobre como operadores, como o sinal de adição, funcionam.

Operadores e Diferentes Tipos de Dados

Você pode usar o operador + para unir duas strings. O termo técnico para isso é concatenação:


cor = 'azul'
animal = 'cavalo'

# Você pode concatenar duas strings usando o operador +:
print(animal + cor)
# Isso exibirá o seguinte: cavaloazul

# Você pode concatenar várias strings entre si, e também pode concatenar strings
# com variáveis do tipo string usando aspas simples ou duplas:
print(animal + ' ' + cor + '!')
# Isso exibirá o seguinte: cavalo azul!

# Você também pode salvar o resultado em uma nova variável de string:
palavras_combinadas = animal + ' ' + cor + '!'
print(palavras_combinadas)

Por outro lado, se o tipo de dados das variáveis ​​for inteiro ou ponto flutuante, o operador + realizará a adição matemática:


contagem_de_meninos = 10
contagem_de_meninas = 12

# Some dois números usando o operador +:
print(contagem_de_meninos + contagem_de_meninas)
# Isso exibirá o seguinte: 22

# Você pode salvar o resultado em uma nova variável para usá-lo posteriormente:
contagem_total = contagem_de_meninos + contagem_de_meninas
print(contagem_total)

Combinação de Strings e Números

Você só pode usar o operador + para concatenar strings entre si, e realizar operações matemáticas com números. Ele não vai funcionar para concatenar dados do tipo string e numéricos entre si. Por exemplo, tentar concatenar uma string e um número inteiro gera um erro:


contagem_de_peras = 5

# Erro nesta linha... Você não pode concatenar strings e números!
print("Você tem " + contagem_de_peras + " peras") # ERRO!

O Python não sabe como concatenar strings e números, o que causa um erro. Nesse caso, você precisa que o programa trate o número armazenado na variável contagem_de_peras como uma string em vez de um número. Pode parecer óbvio para você que este é o comportamento desejado, mas o Python não tenta adivinhar o que você deseja. Você deve informá-lo explicitamente quando deseja converter um tipo de dados em outro.

A conversão de dados de um tipo para outro é chamada de "conversão de tipo" (type-casting) ou simplesmente "conversão" (casting). Essa é apenas uma maneira elegante de dizer "trate isso como um número". Para converter um dado em um número inteiro em Python, você utiliza a função "int". Basta escrever int e em seguida colocar o valor que deseja converter entre parênteses, assim: int(seu_dado_aqui) . Isso também vale para convertê-lo em um número de ponto flutuante usando a função float() ou em uma string com str() e assim por diante.

Por exemplo:


# Isso cria uma nova variável do tipo inteiro com o valor 10
# Não há nada de especial no "_num" do nome da variável, ele apenas
# nos ajuda a reconhecer facilmente o tipo de dados da variável.
comprimento_num = 50
largura_num = 10

# Se você somar os números, obterá o resultado esperado:
print(comprimento_num + largura_num) # Isso exibirá: 60

# Você pode converter os valores para as strings "50" e "10" assim:
comprimento_string = str(comprimento_num)
largura_string = str(largura_num)

# O Python agora vai tratar essas variáveis ​​como tendo dois caracteres, o dígito 5 seguido
# pelo dígito 0 e o dígito 1 seguido pelo dígito 0.

# Se você tentar somar as duas strings, elas serão concatenadas e exibidas
# uma após a outra:
print(comprimento_string + largura_string) # Isso exibirá: 5010

Sempre que você receber uma entrada do usuário usando input, ela será do tipo string por padrão:


quantidade_do_usuario = input("Quantos itens você tem? ")

# A variável quantidade_do_usuario é uma string.
# Para convertê-la para um número inteiro você usa a função int(...):
quantidade_numero = int(quantidade_do_usuario)

# Como a variável quantidade_numero é um número inteiro, você pode fazer contas matemáticas com ela:
numero_dobrado = quantidade_numero * 2

# Se você quiser usar esses valores em strings, NÃO PODE simplesmente concatená-los. Primeiro,
# é necessário convertê-los em uma string:

# ERRADO:
print("O dobro é: " + numero_dobrado)

# Certo:
string_dobro = str(numero_dobrado)
print("O dobro é: " + string_dobro)

# Você também pode fazer isso em uma única etapa:
# Certo:
print("O dobro é " + str(numero_dobrado))

Assim como no último exemplo, você pode combinar os comandos input e int em uma linha:


# Usando duas linhas:
pessoas_string = input("Quantas pessoas estão na sala? ")
numero_de_pessoas = int(pessoas_string)

# Usando uma linha:
numero_de_pessoas = int(input("Quantas pessoas estão na sala? "))

# O mesmo funciona para números de ponto flutuante:
comprimento_numero = float(input("Qual é o comprimento? "))

Dica do Instrutor:

Nos exemplos desta página, usamos variáveis ​​como comprimento_string e quantidade_numero para tentar ilustrar os tipos de dados de cada variável, mas ao escrever seu código, você não precisa incluir as partes _string ou _numero. Você deve usar nomes de variáveis ​​que sejam curtos e diretos, como: quantidade, frutas, comprimento etc.

Expressões e Operações Matemáticas

Link Direto: Expressões e Operadores Matemáticos

Depois de armazenar valores numéricos em variáveis, você poderá realizar diversas operações matemáticas complexas. A seguir estão os operadores matemáticos comuns em Python:

Operação Símbolo Exemplo Resultado

Adição

+

3 + 4

7

Subtração

-

3 - 4

-1

Multiplicação

*

3 * 4

12

Divisão

/

15 / 4

3.75

Dividir e eliminar o resto

//

15 // 4

3

Resto ou Módulo
(Obtenha o resto que resultaria da divisão
do primeiro número pelo segundo.)

%

25 % 7

4

Expoente
(Elevado à potência de)

**

3 ** 4

81

Esses operadores seguem a ordem padrão das operações matemáticas (em que * acontece antes de +). Mas você pode mudar a sequência das operações usando parênteses. Por exemplo, (3 + 4) * 2 realizará a adição primeiro, depois multiplicará o resultado por 2.

Instruções da Atividade

Para esta tarefa, você praticará vários exemplos diferentes, mas todos deverão fazer parte do mesmo programa.

Dica do Instrutor:

Depois de concluir parte da tarefa, se quiser manter o código no programa, mas não o executar todas as vezes, você pode colocar um caractere # no início da linha para "comentá-lo" ou transformá-lo temporariamente em um comentário. Então, se quiser que o código deixe de ser um comentário e volte a ser executado, remova o caractere # e ele será transformarado em código novamente.

Escreva um programa que faça o seguinte:

  1. Informe a idade do usuário, converta-a em um número, adicione um e diga quantos anos ele terá no próximo aniversário.

  2. Solicite ao usuário o número de caixas de ovos que ele possui. Suponha que cada caixa contenha 12 ovos, multiplique o número por 12 e exiba o número total de ovos.

  3. Solicite ao usuário o número de biscoitos e o número de pessoas. Então divida o número de biscoitos pelo número de pessoas para determinar quantos biscoitos cada pessoa receberá.

Confira abaixo um exemplo das tarefas quando executadas:


Quantos anos você tem? 25
No seu próximo aniversário, você terá 26 anos.

Quantas caixas de ovos você tem? 3
Você tem 36 ovos.

Quantos biscoitos você tem? 18
Há quantas pessoas? 8
Cada pessoa pode comer 2.25 biscoitos.

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:

  1. Execute todo o programa usando as entradas mostradas no exemplo acima. Certifique-se de que sua saída corresponda à saída mostrada acima.

  2. Para a primeira pergunta, sobre a idade, tente inserir as idades 18 e 59 (uma de cada vez) e certifique-se de que o programa gere corretamente os números 19 e 60 para os próximos aniversários.

  3. Para a segunda pergunta, sobre os ovos, tente inserir 5 e 0 (um de cada vez) e certifique-se de que o programa produza 60 e 0 ovos.

  4. Para a terceira pergunta, sobre os biscoitos, tente inserir mais dois conjuntos de valores (um de cada vez) e verifique se a divisão funciona corretamente. Experimente um conjunto de valores que resulte em um número par (sem parte decimal) e outro que resulte em um decimal, e certifique-se de que ambos funcionem corretamente.

  5. Verifique novamente se a saída corresponde exatamente à saída do exemplo, incluindo:

    • Os valores numéricos devem aparecer no meio das outras palavras, e não em uma linha separada.

    • O número de espaços antes e depois dos números deve corresponder à saída do exemplo.

    • Deve haver uma linha em branco antes de cada seção.

Envio de Tarefa

Quando você tiver concluído todas as atividades de aprendizagem desta semana, volte ao Canvas e responda ao respectivo questionário.

Próxima Atividade

Outros Links: