1
resposta

Desafio: hora da prática

  • Coleta e amostragem de dados
    nome = input (),
    print(f"Olá, {nome}!")

nome = input (),
idade = input ()
print(f"Olá, {nome}!, você tem {idade} anos")

nome = input (),
idade = input (),
altura = input ()
print(f"Olá, {nome}! você tem {idade} anos e tem {altura} metros")

Resultado final será.
Marcelo Braga Stahl
50
1.98
Olá, ('Marcelo Braga Stahl',)! você tem ('50',) anos e tem 1.98 metros

  • Calculadora com operadores
    1 -
    valor1 = float(input("Digite o primeiro número: "))
    valor2 = float(input("Digite o segundo número: "))
    soma = valor1 + valor2
    print(f"A soma dos dois valores é: {soma}")

2-
valor1 = float(input("Digite o primeiro número: "))
valor2 = float(input("Digite o segundo número: "))
valor3 = float(input("Digite o segundo número: "))
soma = valor1 + valor2 + valor3
print(f"A soma dos dois valores é: {soma}")

3-
valor1 = float(input("Digite o primeiro número: "))
valor2 = float(input("Digite o segundo número: "))
subtracao = valor1 - valor2
print(f"A subtração dos dois valores é: {subtracao}")

4-
valor1 = float(input("Digite o primeiro número: "))
valor2 = float(input("Digite o segundo número: "))
multiplica = valor1 * valor2
print(f"A multiplicação dos dois valores é: {multiplica}")

5-
valor1 = float(input("Digite o primeiro número: "))
valor2 = float(input("Digite o segundo número diferente de zero: "))
divide = valor1 / valor2
divide2=round(divide,4)
print(f"A divisão dos dois valores é: {divide2}")

6-
valor1 = float(input("Digite o primeiro número: "))
valor2 = float(input("Digite o segundo número: "))
expoente = valor1 ** valor2
print(f"A exponenciação dos dois valores é: {expoente}")

7-
valor1 = int(input("Digite o primeiro número: "))
valor2 = int(input("Digite o segundo número diferente de zero: "))
divideinteiro = valor1 // valor2
print(f"A divisão dos dois valores é: {divideinteiro}")

8-
valor1 = float(input("Digite o primeiro número: "))
valor2 = float(input("Digite o segundo número diferente de zero: "))
resto = valor1 % valor2
print(f"A restante dos dois valores é: {resto}")

9-
nota1 = float(input("Digite a primeira nota: "))
nota2 = float(input("Digite a segunda nota: "))
nota3 = float(input("Digite a terceira: "))
media = float((nota1 + nota2 + nota3)/3)
media1 = round(media , 3)
print(f"A media do aluno é: {media1}")

10-
media1,pond1 = 5,1
media2,pond2 = 12,2
media3,pond3 = 20,3
media4,pond4 = 15,4
mediapond1 = float((media1pond1)+(media2pond2)+(media3pond3)+(media4pond4))
mediapond2 = float(pond1+pond2+pond3+pond4)
mediapond = float(mediapond1/mediapond2)
print(f"A media ponderada é: {mediapond}")

  • Editando textos

1-
frase = "Apreender coisas novas é execitar o cerebro"
frase

2-
frase = input(f'Digite a sua frase do dia')
frase

3-
frase = input(f'Digite a sua frase do dia')
frase1=str.upper(frase)
frase1

4-
frase = input(f'Digite a sua frase do dia')
frase1=str.lower(frase)
frase1

5-
frase = " Apreender coisas novas é execitar o cerebro "
frase1= str.strip(frase)
frase1

6-
frase = input(f'Digite a sua frase do dia')
frase1= str.strip(frase)
frase1

7-
frase = input(f'Digite a sua frase do dia')
frase1= str.strip(frase)
frase2 = str.lower(frase1)
frase2

8-
frase = input(f'Digite a sua frase do dia')
frase1= frase.replace('e', 'f')
frase1

9-
frase = input(f'Digite a sua frase do dia')
frase1= frase.replace('a', '@')
frase1

10-
frase = input(f'Digite a sua frase do dia')
frase1= frase.replace('s', '$')
frase1

1 resposta

Olá, Marcelo. Como vai?

Sensacional ver a quantidade de exercícios que você praticou de uma só vez! Criar uma calculadora completa com tantos operadores e aplicar diversos métodos de manipulação de strings mostra que você está evoluindo rápido e compreendendo muito bem a lógica do Python.

Analisando a sua publicação, a estrutura da esmagadora maioria dos códigos está corretíssima, mas existem três detalhes importantes na sintaxe que estão gerando comportamentos inesperados ou pequenos erros de execução.

Vamos aos ajustes para deixar seu código 100% polido:


1. O Mistério dos Parênteses e Vírgulas na Saída

No seu primeiro bloco (Coleta e amostragem de dados), veja que a saída gerou parênteses, aspas e uma vírgula estranha: ('Marcelo Braga Stahl',), ('50',).

  • O motivo: No final das linhas do input(), você colocou uma vírgula solta: nome = input (),. No Python, colocar uma vírgula no final de uma atribuição faz com que ele transforme aquela variável em uma tupla (um tipo de estrutura de dados que guarda múltiplos valores).
  • A correção: Basta remover a vírgula do final de todas as linhas de input().
nome = input("Digite seu nome: ")
idade = input("Digite sua idade: ")
altura = input("Digite sua altura: ")
print(f"Olá, {nome}! você tem {idade} anos e tem {altura} metros")

2. Correção na Média Ponderada (Questão 10 da Calculadora)

Se você tentar executar a sua questão 10, o Python vai acusar um erro do tipo NameError na linha do cálculo.

  • O motivo: Faltou o caractere de multiplicação (*) entre as variáveis. No Python, escrever media1pond1 faz o interpretador achar que você está tentando chamar uma única variável com esse nome longo, em vez de multiplicar media1 por pond1.
  • A correção: Adicione os asteriscos (*) correspondentes:
media1, pond1 = 5, 1
media2, pond2 = 12, 2
media3, pond3 = 20, 3
media4, pond4 = 15, 4

# Corrigido adicionando o asterisco (*) para multiplicar
mediapond1 = float((media1 * pond1) + (media2 * pond2) + (media3 * pond3) + (media4 * pond4))
mediapond2 = float(pond1 + pond2 + pond3 + pond4)
mediapond = float(mediapond1 / mediapond2)

print(f"A média ponderada é: {mediapond}")

3. Métodos de String (Seção Editando Textos)

Nas questões 3, 4, 5, 6 e 7 de texto, você utilizou construções como frase1 = str.upper(frase). Embora isso funcione em alguns contextos, a convenção padrão e a sintaxe mais nativa do Python para métodos de texto é chamar o método diretamente a partir da variável, usando o ponto.

Veja a forma ideal e mais recomendada pelo mercado para escrever esses códigos:

  • Questão 3 (Maiúsculas): frase1 = frase.upper()
  • Questão 4 (Minúsculas): frase1 = frase.lower()
  • Questão 5 e 6 (Remover espaços em branco): frase1 = frase.strip()
  • Questão 7 (Encadeando métodos limpos): ```python
    frase = input('Digite a sua frase do dia: ')
    frase_limpa = frase.strip().lower()
    print(frase_limpa)


O uso que você fez do round(divide, 4) para limitar as casas decimais na divisão e os tratamentos usando o .replace() ficaram simplesmente perfeitos!

Fazer esses pequenos ajustes de sintaxe vai te poupar muitas dores de cabeça nos próximos capítulos, quando as regras começarem a ficar mais complexas. Parabéns pelo empenho gigante neste desafio!

Espero que possa ter lhe ajudado!