diff --git a/.github/workflows/corretor_de_exercicios_secao_04.yml b/.github/workflows/corretor_de_exercicios_secao_04.yml index 2fe441f78..82e8aa308 100644 --- a/.github/workflows/corretor_de_exercicios_secao_04.yml +++ b/.github/workflows/corretor_de_exercicios_secao_04.yml @@ -55,3 +55,7 @@ jobs: if: always() run: | python -m doctest -f secao_04_exercicios_lista/ex_24_lancamento_de_dados.py + - name: Correção do Exercício 01 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_01_vetor_5_numeros.py diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..9738442d5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + // Use o IntelliSense para saber mais sobre os atributos possíveis. + // Focalizar para exibir as descrições dos atributos existentes. + // Para obter mais informações, acesse: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "pwa-msedge", + "request": "launch", + "name": "Launch Edge against localhost", + "url": "http://localhost:8080", + "webRoot": "${workspaceFolder}" + } + { + "name": "Pytest", + "type": "python", + "request": "launch", + "module": "pytest", + "args": ["${file}", "--doctest-modules"], + "cwd": "${workspaceRoot}", + "justMyCode": true + } + ] +} \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_01_alo_mundo.py b/secao_01_estrutura_sequencial/ex_01_alo_mundo.py index b9b0821a6..db76fa425 100644 --- a/secao_01_estrutura_sequencial/ex_01_alo_mundo.py +++ b/secao_01_estrutura_sequencial/ex_01_alo_mundo.py @@ -12,4 +12,4 @@ def ola_mundo(): """Escreva aqui em baixo a sua solução""" - + print('Olá Mundo') \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py b/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py index 8c3d45dd4..0bd39b753 100644 --- a/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py +++ b/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py @@ -13,4 +13,5 @@ def escreva_um_numero(): """Escreva aqui em baixo a sua solução""" - + n = int (input('Digite um numero: ')) + print(f'O número informado foi {n}') diff --git a/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py b/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py index b842fd8b7..944bf5a1a 100644 --- a/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py +++ b/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py @@ -15,3 +15,6 @@ def imprima_a_soma_de_dois_numeros(): """Escreva aqui em baixo a sua solução""" + n1 = int (input('Informe o primeiro número: ')) + n2 = int (input('Informe o segundo número: ')) + print(f'A soma dos dois números informados é {n1+n2}') \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py b/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py index a1b189cd5..b58def96b 100644 --- a/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py +++ b/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py @@ -15,4 +15,8 @@ def calcular_media(): """Escreva aqui em baixo a sua solução""" - + n1 = float (input('Informe a nota do primeiro bimestre: ')) + n2 = float (input('Informe a nota do segundo bimestre: ')) + n3 = float (input('Informe a nota do terceiro bimestre:: ')) + n4 = float (input('Informe a nota do quarto bimestre: ')) + print(f'A média anual é {(n1+n2+n3+n4)/4}') \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py b/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py index 315e5392d..1f0078bfc 100644 --- a/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py +++ b/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py @@ -17,3 +17,5 @@ def converter_metros_para_centimetros(): """Escreva aqui em baixo a sua solução""" + n1 = float (input('Informe o valor em metros: ')) + print(f'Transformando para centímetros dá {n1*100} cm') diff --git a/secao_01_estrutura_sequencial/ex_06_area_circulo.py b/secao_01_estrutura_sequencial/ex_06_area_circulo.py index 840559026..c72271ae2 100644 --- a/secao_01_estrutura_sequencial/ex_06_area_circulo.py +++ b/secao_01_estrutura_sequencial/ex_06_area_circulo.py @@ -16,5 +16,12 @@ """ +from cmath import pi + + def calcular_area_de_circulo(): """Escreva aqui em baixo a sua solução""" + n = float (input('Informe o valor do raio do círculo: ')) + pi = 3.1415 + area = (pi * n**2) + print(f'A área do círculo com esse raio é: {"%.4f" %area}') diff --git a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py index 63b12a193..669cf32ae 100644 --- a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py +++ b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py @@ -18,5 +18,14 @@ """ +from tkinter import N + + def calcular_area_de_quadrado(): """Escreva aqui em baixo a sua solução""" + n = float (input('Informe o tamanho do lado do quadrado: ')) + base = n + altura = n + area = altura*base + print(f'A área do quadrado com esse lado é: {"%.2f" %area}') + print(f'O dobro da aŕea do quadrado é: {"%.2f" %(area*2)}') diff --git a/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py b/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py index 07ded093f..2b82dc6cc 100644 --- a/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py +++ b/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py @@ -17,3 +17,7 @@ def calcular_salario(): """Escreva aqui em baixo a sua solução""" + n1 = float (input('Informe o valor da hora: ')) + n2 = float (input('Informe quantas horas você trabalhou no mês: ')) + salario = (n1*n2) + print (f'Seu salário desse mês é {"%.2f" %salario}') diff --git a/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py b/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py index a13351c7e..cc8370cca 100644 --- a/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py +++ b/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py @@ -19,3 +19,6 @@ def transformar_para_celsius(): """Escreva aqui em baixo a sua solução""" + n1 = int (input ('Informe a temperatura em graus Fahrenheit: ')) + n2 = round (5 * ((n1-32) / 9)) + print(f'Essa temperatura é de {n2} Celsius') diff --git a/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py b/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py index 76d97aa8d..55fee0bcf 100644 --- a/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py +++ b/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py @@ -18,3 +18,6 @@ def transformar_para_fahrenheit(): """Escreva aqui em baixo a sua solução""" + n1 = int (input('Informe os graus em celsius ')) + n2 = round((9*n1/5)+32) + print(f'Essa temperatura é de {n2} Fahrenheit ') diff --git a/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py b/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py index 09bdbbffd..e6df795fe 100644 --- a/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py +++ b/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py @@ -22,5 +22,10 @@ def calcular_formulas(): """Escreva aqui em baixo a sua solução""" - + n1 = int (input('Informe o primeiro número inteiro: ')) + n2 = int (input('Informe o segundo número inteiro: ')) + n3 = float (input('Informe o número real: ')) + print (f'O produto do dobro do primeiro com metade do segundo é {"%.2f" %((n1*2)*(n2/2))}') + print (f'A soma do triplo do primeiro com o terceiro é {"%.2f" %((n1*3)+n3)}') + print (f'O terceiro elevado ao cubo é {"%.2f" %(n3**3)}') diff --git a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py index 1f8418fab..90c3e8a66 100644 --- a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py +++ b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py @@ -19,3 +19,6 @@ def calcular_peso_ideal(): """Escreva aqui em baixo a sua solução""" + altura = float (input('Informe a altura: ')) + peso_ideal = (72.7*altura) - 58 + print (f'Seu peso ideal é {"%.1f" %peso_ideal} kg') \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py b/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py index fe27d6ff1..4658916c3 100644 --- a/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py +++ b/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py @@ -22,3 +22,9 @@ def calcular_peso_ideal(): """Escreva aqui em baixo a sua solução""" + altura = float (input('Informe a altura: ')) + peso_ideal_homem = (72.7*altura) - 58 + peso_ideal_mulher = (62.1*altura) - 44.7 + print (f'Seu peso ideal é {"%.1f" %peso_ideal_mulher} kg, se você for mulher') + print (f'Seu peso ideal é {"%.1f" %peso_ideal_homem} kg, se você for homem') + diff --git a/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py b/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py index 16a2a211f..486faf009 100644 --- a/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py +++ b/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py @@ -26,3 +26,12 @@ def calcular_peso_excedente_e_multa(): """Escreva aqui em baixo a sua solução""" + kg_peixe = float (input('Informe a quantidade de peixes em kg: ')) + kg_excedente = kg_peixe - 50 + if kg_peixe > 50: + print(f'O peso excedente de peixes é de {"%.2f" %kg_excedente} kg') + print(f'Por isso, a multa é de R$ {"%.2f" %(4*kg_excedente)}') + else: + print(f'O peso excedente de peixes é de 0.00 kg') + print(f'Por isso, a multa é de R$ 0.00') + diff --git a/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py b/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py index 901de0409..3b1cbd4b2 100644 --- a/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py +++ b/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py @@ -27,3 +27,15 @@ def calcular_assalto_no_salario(): """Escreva aqui em baixo a sua solução""" + n1 = float (input('Quanto você ganha por hora? ')) + n2 = float (input('Quantas horas você trabalhou no mês? ')) + salario = (n1*n2) + ir = salario*0.11 + inss = salario*0.08 + sindicato = salario*0.05 + salario_liquido = (salario) - (ir) - (inss) - (sindicato) + print (f'+ Salário Bruto : {"%.2f" %salario}') + print (f'- IR (11%) : R$ {"%.2f" %ir}') + print (f'- INSS (8%) : R$ {"%.2f" %inss}') + print (f'- Sindicato ( 5%) : R$ {"%.2f" %sindicato}') + print (f'= Salário Liquido : R$ {"%.2f" %salario_liquido}') \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py b/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py index 1a2d13529..7cfea1699 100644 --- a/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py +++ b/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py @@ -19,5 +19,15 @@ """ +import math + + def calcular_latas_e_preco_de_tinta(): """Escreva aqui em baixo a sua solução""" + metros_quadrados = float (input('Informe a área a ser pintada (em metros quadrados): ')) + litro = metros_quadrados/3 + lata_de_tinta = math.ceil (litro/18) + valor = (lata_de_tinta*80.00) + print (f'Você deve comprar {lata_de_tinta} lata(s) tinta ao custo de R$ {"%.2f" %valor}') + + \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py b/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py index 09b7e7ffc..676053e4c 100644 --- a/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py +++ b/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py @@ -23,10 +23,28 @@ Você deve comprar 37 litros de tinta. Você pode comprar 3 lata(s) de 18 litros a um custo de R$ 240. Vão sobrar 17.0 litro(s) de tinta. Você pode comprar 11 lata(s) de 3.6 litros a um custo de R$ 275. Vão sobrar 2.6 litro(s) de tinta. - Para menor custo, você pode comprar 2 lata(s) de 18 litros e 1 galão(ões) de 3.6 litros a um custo de R$ 185. Vão sobrar 2.6 litro(s) de tinta. - """ +import math + + def calcular_latas_e_preco_de_tinta(): """Escreva aqui em baixo a sua solução""" + area_m2 = float(input('Digite aqui o valor em metros: ')) + litros = math.ceil((area_m2/6)*1.1) + latas = math.ceil (litros/18) + vl_latas = (latas*80) + print(f'Você deve comprar {litros} litros de tinta.') + print(f'Você pode comprar {latas} lata(s) de 18 litros a um custo de R$ {vl_latas}. Vão sobrar {"%.1f" %(latas*18-litros)} litro(s) de tinta.') + galao = math.ceil(litros/3.6) + vl_galao = (galao*25) + print(f'Você pode comprar {galao} lata(s) de 3.6 litros a um custo de R$ {vl_galao}. Vão sobrar {"%.1f" %(galao*3.6-litros)} litro(s) de tinta.') + if litros % 18 <= 3*3.6: + latas = litros//18 + galao = math.ceil(litros % 18/3.6) + valor = latas * 80 + galao * 25 + sobra = latas * 18 + galao * 3.6 - litros + print (f'Para menor custo, você pode comprar {latas} lata(s) de 18 litros e {galao} galão(ões) de 3.6 litros a um custo de R$ {valor}. Vão sobrar {"%.1f" %sobra} litro(s) de tinta.') + else: + print (f'Para menor custo, você pode comprar {latas} lata(s) de 18 litros e 0 galão(ões) de 3.6 litros a um custo de R$ {valor}. Vão sobrar {"%.1f" %(latas*18-litros)} litro(s) de tinta.') \ No newline at end of file diff --git a/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py b/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py index b24730f1a..1f6835b85 100644 --- a/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py +++ b/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py @@ -19,5 +19,20 @@ """ +from decimal import Rounded + + def calcular_tempo_de_download(): """Escreva aqui em baixo a sua solução""" + tamanho_arquivo = float(input('Digite o tamanho do arquivo')) + velocidade = float(input('Digite a velocidade em Mbps')) + download = (tamanho_arquivo *8 / velocidade) /60 + print(f'O tempo aproximado do Download é: {download:.0f} minuto(s)') + + + + + + + + diff --git a/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py b/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py index e1d40a714..2ee0db8e8 100644 --- a/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py +++ b/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py @@ -17,3 +17,7 @@ def maior_de_dois_numeros(x, y): """Escreva aqui em baixo a sua solução""" + if x < y: + print(y) + else: + print(x) \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py b/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py index 23501b91e..e69c1cc15 100644 --- a/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py +++ b/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py @@ -17,3 +17,9 @@ def positivo_ou_negativo(n): """Escreva aqui em baixo a sua solução""" + if (n > 0): + print("'positivo'") + elif (n < 0): + print("'negativo'") + else: + print("'não tem positivo nem negativo'") diff --git a/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py b/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py index 466585cfb..9f1812c42 100644 --- a/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py +++ b/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py @@ -18,3 +18,9 @@ def f_ou_m(sexo): """Escreva aqui em baixo a sua solução""" + if sexo == "F": + print("'F - Feminino'") + elif sexo == "M": + print("'M - Masculino'") + else: + print("'Sexo inválido'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py b/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py index acdc60f64..3e517a8ac 100644 --- a/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py +++ b/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py @@ -17,3 +17,7 @@ def vogal_ou_consoante(letra): """Escreva aqui em baixo a sua solução""" + if letra in ("aeiou") or letra in ("AEIOU"): + print("'vogal'") + else: + print("'consoante'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py b/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py index 322a968e7..b63b1444f 100644 --- a/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py +++ b/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py @@ -21,3 +21,11 @@ def notas_parciais(nota_1, nota_2): """Escreva aqui em baixo a sua solução""" + nota = (nota_1 + nota_2) / 2 + + if 10 > nota >= 7: + print ("'Aprovado'") + elif (nota < 7): + print("'Reprovado'") + else: + print ("'Aprovado com Distinção'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py b/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py index 84e731053..d73894294 100644 --- a/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py +++ b/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py @@ -17,3 +17,10 @@ def calcular_maior_de_3_numeros(x, y, z): """Escreva aqui em baixo a sua solução""" + if(x>y and x>z): + print(x) + elif(y>x and y>z): + print(y) + elif(z>x and z>y): + print(z) + \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py b/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py index b60bfe70f..d75396df3 100644 --- a/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py +++ b/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py @@ -21,3 +21,15 @@ def calcular_maior_de_3_numeros(x, y, z): """Escreva aqui em baixo a sua solução""" + if x > y and x > z: + print(f"Maior: {x}") + elif y > x and y > z: + print(f"Maior: {y}") + else: + print(f"Maior: {z}") + if x < y and x < z: + print(f"Menor: {x}") + elif y < x and y < z: + print(f"Menor: {y}") + else: + print(f"Menor: {z}") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py b/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py index 92155628a..2b1aebcf2 100644 --- a/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py +++ b/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py @@ -20,3 +20,9 @@ def decidir_melhor_produto(x, y, z): """Escreva aqui em baixo a sua solução""" + if x < y and x < z: + print(f"Melhor produto custa R$ {x:.2f}") + elif y < x and y < z: + print(f"Melhor produto custa R$ {y:.2f}") + else: + print(f"Melhor produto custa R$ {z:.2f}") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py b/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py index 547338521..d7c9d15a5 100644 --- a/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py +++ b/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py @@ -18,3 +18,15 @@ def ordenar_decrescente(x, y, z): """Escreva aqui em baixo a sua solução""" + if x > y > z: + print(f"{x}, {y}, {z}") + elif x > z > y: + print(f"{x}, {z}, {y}") + elif y > x > z: + print(f"{y}, {x}, {z}") + elif y > z > x: + print(f"{y}, {z}, {x}") + elif z > x > y: + print(f"{z}, {x}, {y}") + else: + print(f"{z}, {y}, {x}") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py b/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py index d502e8de9..77ae1cac8 100644 --- a/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py +++ b/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py @@ -25,3 +25,17 @@ def cumprimentar(turno: str): """Escreva aqui em baixo a sua solução""" + if turno == 'M': + return 'Bom dia!' + if turno == 'm': + return 'Bom dia!' + if turno == 'V': + return 'Boa tarde!' + if turno == 'v': + return 'Boa tarde!' + if turno == 'N': + return 'Boa noite!' + if turno =='n': + return 'Boa noite!' + else: + return 'Valor Inválido!' \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py b/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py index f10641d83..b86e461dc 100644 --- a/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py +++ b/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py @@ -41,3 +41,20 @@ def calcular_aumento(salario: float): """Escreva aqui em baixo a sua solução""" + if salario <= 280: + aumento = 20 + elif salario <750: + aumento = 15 + elif salario < 1500: + aumento = 10 + elif salario > 1500: + aumento = 5 + else: + aumento = 5 + + diferenca_entre_salarios = salario * (aumento / 100) + salario_novo = salario + diferenca_entre_salarios + print(f"Salário atual: R$ {salario:.2f}") + print(f"Aumento porcentual: {aumento}%") + print(f"Valor do aumento: R$ {diferenca_entre_salarios:.2f}") + print(f"Novo salário: R$ {salario_novo:.2f}") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py b/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py index 117e67bab..64c68bc86 100644 --- a/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py +++ b/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py @@ -53,3 +53,64 @@ def calcular_salario_liquido(valor_hora: float, horas_trabalhadas: int): """Escreva aqui em baixo a sua solução""" + salario = valor_hora * horas_trabalhadas + + if salario <= 900: + ir = salario * 0 + inss = salario * 0.1 + sindicato = salario * 0.03 + fgts = salario * 0.11 + total_descontos = ir + inss + sindicato + salario_liquido = salario - total_descontos + print(f"Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario:.2f}") + print(f"(-) IR (0%) : R$ {ir:.2f}") + print(f"(-) INSS (10%) : R$ {inss:.2f}") + print(f"(-) Sindicato (3%) : R$ {sindicato:.2f}") + print(f"FGTS (11%) : R$ {fgts:.2f}") + print(f"Total de descontos : R$ {total_descontos:.2f}") + print(f"Salário Liquido : R$ {salario_liquido:.2f}") + + elif salario <= 1500: + ir = salario * 0.05 + inss = salario * 0.1 + sindicato = salario * 0.03 + fgts = salario * 0.11 + total_descontos = ir + inss + sindicato + salario_liquido = salario - total_descontos + print(f"Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario:.2f}") + print(f"(-) IR (5%) : R$ {ir:.2f}") + print(f"(-) INSS (10%) : R$ {inss:.2f}") + print(f"(-) Sindicato (3%) : R$ {sindicato:.2f}") + print(f"FGTS (11%) : R$ {fgts:.2f}") + print(f"Total de descontos : R$ {total_descontos:.2f}") + print(f"Salário Liquido : R$ {salario_liquido:.2f}") + + elif salario <= 2500: + ir = salario * 0.1 + inss = salario * 0.1 + sindicato = salario * 0.03 + fgts = salario * 0.11 + total_descontos = ir + inss + sindicato + salario_liquido = salario - total_descontos + print(f"Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario:.2f}") + print(f"(-) IR (10%) : R$ {ir:.2f}") + print(f"(-) INSS (10%) : R$ {inss:.2f}") + print(f"(-) Sindicato (3%) : R$ {sindicato:.2f}") + print(f"FGTS (11%) : R$ {fgts:.2f}") + print(f"Total de descontos : R$ {total_descontos:.2f}") + print(f"Salário Liquido : R$ {salario_liquido:.2f}") + + elif salario > 2500: + ir = salario * 0.2 + inss = salario * 0.1 + sindicato = salario * 0.03 + fgts = salario * 0.11 + total_descontos = ir + inss + sindicato + salario_liquido = salario - total_descontos + print(f"Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario:.2f}") + print(f"(-) IR (20%) : R$ {ir:.2f}") + print(f"(-) INSS (10%) : R$ {inss:.2f}") + print(f"(-) Sindicato (3%) : R$ {sindicato:.2f}") + print(f"FGTS (11%) : R$ {fgts:.2f}") + print(f"Total de descontos : R$ {total_descontos:.2f}") + print(f"Salário Liquido : R$ {salario_liquido:.2f}") diff --git a/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py b/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py index 6edeb2c7d..0dad31d90 100644 --- a/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py +++ b/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py @@ -29,3 +29,19 @@ def calcular_dia_da_semana(numero: int): """Escreva aqui em baixo a sua solução""" + if numero == 1: + print (f"'Domingo'") + elif numero == 2: + print (f"'Segunda'") + elif numero == 3: + print (f"'Terça'") + elif numero == 4: + print (f"'Quarta'") + elif numero == 5: + print (f"'Quinta'") + elif numero == 6: + print (f"'Sexta'") + elif numero == 7: + print (f"'Sábado'") + else: + print("'Dia Inválido'") diff --git a/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py b/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py index ca01c9495..4ee926d5f 100644 --- a/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py +++ b/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py @@ -46,3 +46,30 @@ def calcular_conceito(nota_1: float, nota_2: float): """Escreva aqui em baixo a sua solução""" + media = (nota_1 + nota_2)/2 + if media >= 9 and media <= 10: + print(f"Notas: {nota_1:.1f} e {nota_2:.1f}.") + print(f"Média: {media:.1f}") + print("Conceito: A") + print("Status: APROVADO") + elif media >= 7.5 and media <= 9: + print(f"Notas: {nota_1:.1f} e {nota_2:.1f}.") + print(f"Média: {media:.1f}") + print("Conceito: B") + print("Status: APROVADO") + elif media >= 6 and media <= 7.5: + print(f"Notas: {nota_1:.1f} e {nota_2:.1f}.") + print(f"Média: {media:.1f}") + print("Conceito: C") + print("Status: APROVADO") + elif media >= 4 and media <= 6: + print(f"Notas: {nota_1:.1f} e {nota_2:.1f}.") + print(f"Média: {media:.1f}") + print("Conceito: D") + print("Status: REPROVADO") + elif media >= 0 and media <= 4: + print(f"Notas: {nota_1:.1f} e {nota_2:.1f}.") + print(f"Média: {media:.1f}") + print("Conceito: E") + print("Status: REPROVADO") + \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_15_triangulo.py b/secao_02_estrutura_de_decisao/ex_15_triangulo.py index 7da3edebb..42d162d30 100644 --- a/secao_02_estrutura_de_decisao/ex_15_triangulo.py +++ b/secao_02_estrutura_de_decisao/ex_15_triangulo.py @@ -27,3 +27,11 @@ def classificar_triangulo(lado_a: float, lado_b: float, lado_c: float): """Escreva aqui em baixo a sua solução""" + if (lado_a + lado_b < lado_c) or (lado_a + lado_c < lado_b) or (lado_b + lado_c < lado_a): + print("'Não é um triângulo'") + elif (lado_a == lado_b) and (lado_a == lado_c): + print("'Triângulo Equilátero'") + elif (lado_a == lado_b) or (lado_a==lado_c) or (lado_b == lado_c): + print("'Triângulo Isósceles'") + else: + print("'Triângulo Escaleno'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py b/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py index f3ae3dcde..cd70560d4 100644 --- a/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py +++ b/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py @@ -23,6 +23,7 @@ """ +import math def resolver_equacao_do_segundo_grau(a: float, b: float, c: float): """Escreva aqui em baixo a sua solução""" diff --git a/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py b/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py index cf1b9b11b..9c1f29461 100644 --- a/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py +++ b/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py @@ -20,3 +20,7 @@ def eh_ano_bissexto(ano: int): """Escreva aqui em baixo a sua solução""" + if (ano%4 == 0 and ano%100!= 0) or (ano%400 == 0): + print (ano (f"O ano informado é Bissexto")) + else: + print (ano (f" O ano informado não é bissexto")) \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py b/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py index 470fbd63d..868d381c1 100644 --- a/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py +++ b/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py @@ -2,7 +2,7 @@ Exercício 18 da seção de estrutura de decisão da Python Brasil: https://wiki.python.org.br/EstruturaDeDecisao -Faça um Programa que peça uma data no formato dd/mm/aaaa e determine se a mesma é uma data válida. + >>> validar_data('') 'Data inválida' @@ -24,3 +24,9 @@ def validar_data(data: str): """Escreva aqui em baixo a sua solução""" + from datetime import datetime + try: + datetime.strptime(data.strip(), '%d/%m/%Y') + print("""'Data válida'""") + except ValueError: + print("'Data inválida'") diff --git a/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py b/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py index a66653980..82ced6b8f 100644 --- a/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py +++ b/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py @@ -52,3 +52,50 @@ def decompor_numero(numero: int): """Escreva aqui em baixo a sua solução""" + numero_final = numero + centenas_str = dezenas_str = unidade_str = '' + centenas_int, numero = divmod(numero, 100) + partes_numeros = 0 + + if centenas_int == 1: + centenas_str = '1 centena' + partes_numeros += 1 + elif centenas_int > 1: + centenas_str = f'{centenas_int} centenas' + partes_numeros += 1 + + dezenas_int, numero = divmod(numero, 10) + + if dezenas_int == 1: + dezenas_str = '1 dezena' + partes_numeros += 1 + elif dezenas_int > 1: + dezenas_str = f'{dezenas_int} dezenas' + partes_numeros += 1 + + if numero == 1: + unidade_str = '1 unidade' + partes_numeros += 1 + elif numero > 1: + unidade_str = f'{numero} unidades' + partes_numeros += 1 + + if numero_final <= 0: + print("""'O número precisa ser positivo'""") + elif numero_final >= 1000: + print("""'O número precisa ser menor que 1000'""") + elif partes_numeros == 1: + if centenas_str != '': + print(f"""'{numero_final} = {centenas_str}'""") + elif dezenas_str != '': + print(f"""'{numero_final} = {dezenas_str}'""") + elif unidade_str != '': + print(f"""'{numero_final} = {unidade_str}'""") + elif partes_numeros == 3: + print(f"""'{numero_final} = {centenas_str}, {dezenas_str} e {unidade_str}'""") + elif partes_numeros == 2: + if centenas_str != '': + segunda_parte = dezenas_str + unidade_str + print(f"""'{numero_final} = {centenas_str} e {segunda_parte}'""") + else: + print(f"""'{numero_final} = {dezenas_str} e {unidade_str}'""") diff --git a/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py b/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py index c064ce5fd..fd6078016 100644 --- a/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py +++ b/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py @@ -21,3 +21,11 @@ def calcular_status(nota_1, nota_2, nota_3): """Escreva aqui em baixo a sua solução""" + nota = (nota_1 + nota_2 + nota_3) / 3 + + if 10 > nota >= 7: + print ("'Aprovado'") + elif (nota < 7): + print("'Reprovado'") + else: + print ("'Aprovado com Distinção'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py b/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py index a836f1758..f813d0590 100644 --- a/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py +++ b/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py @@ -22,3 +22,5 @@ def decidir_se_eh_par_ou_impar(valor: int) -> str: """Escreva aqui em baixo a sua solução""" + if valor % 2 == 0: print("'Par'") + else: print("'Impar'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py b/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py index 9f2d9da04..91a61f64c 100644 --- a/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py +++ b/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py @@ -22,3 +22,7 @@ def decidir_se_eh_inteiro_ou_decimal(valor: str) -> str: """Escreva aqui em baixo a sua solução""" + if float(valor) % 1 == 0: + return 'Inteiro' + else: + return 'Decimal' diff --git a/secao_02_estrutura_de_decisao/ex_24_operacao.py b/secao_02_estrutura_de_decisao/ex_24_operacao.py index 73fd5778f..0e4c3008f 100644 --- a/secao_02_estrutura_de_decisao/ex_24_operacao.py +++ b/secao_02_estrutura_de_decisao/ex_24_operacao.py @@ -31,3 +31,40 @@ def fazer_operacao_e_classificar(n_1: float, n_2: float, operacao: str): """Escreva aqui em baixo a sua solução""" + if operacao == '+': + resultado = float(n_1+n_2) + print(f'Resultado: {resultado:.2f}') + + elif operacao == '-': + resultado = float(n_1-n_2) + print(f'Resultado: {resultado:.2f}') + + elif operacao == '*': + resultado = float(n_1*n_2) + print(f'Resultado: {resultado:.2f}') + + elif operacao == '/': + resultado = float(n_1/n_2) + print(f'Resultado: {resultado:.2f}') + + else: + print(f'Números inválidos.') + + if resultado%2 == 0: + par_ou_impar = 'par' + else: + par_ou_impar = 'impar' + + if resultado > 0: + pos_ou_neg = 'positivo' + elif resultado == 0: + pos_ou_neg = 'neutro' + else: + pos_ou_neg = 'negativo' + + if resultado % 1 == 0: + int_ou_flo = 'inteiro' + print(f'Número é {par_ou_impar}, {pos_ou_neg} e {int_ou_flo}.') + else: + int_ou_flo = 'decimal' + print(f'Número é {pos_ou_neg} e {int_ou_flo}.') \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_25_sherlock.py b/secao_02_estrutura_de_decisao/ex_25_sherlock.py index b9e2e1017..4efb59899 100644 --- a/secao_02_estrutura_de_decisao/ex_25_sherlock.py +++ b/secao_02_estrutura_de_decisao/ex_25_sherlock.py @@ -33,3 +33,29 @@ def investigar(telefonou: str, estava_no_local: str, mora_perto: str, devia: str, trabalhou: str, ): """Escreva aqui em baixo a sua solução""" + cont = 0 + + if telefonou == 'Sim': + cont += 1 + + if estava_no_local == 'Sim': + cont += 1 + + if mora_perto == 'Sim': + cont += 1 + + if devia == 'Sim': + cont += 1 + + if trabalhou == 'Sim': + cont += 1 + + + if cont == 5: + print("'Assassino'") + elif cont == 3 or cont == 4: + print("'Cúmplice'") + elif cont == 2: + print("'Suspeito'") + else: + print("'Inocente'") \ No newline at end of file diff --git a/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py b/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py index a308c0640..3a47039c5 100644 --- a/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py +++ b/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py @@ -35,3 +35,32 @@ def calcular_abastecimento(litros_de_combustivel: float, tipo_de_combustivel: str) -> str: """Escreva aqui em baixo a sua solução""" + alcool = litros_de_combustivel * 1.9 + gasolina = litros_de_combustivel * 2.5 + + desconto_alcool_1 = alcool * 0.03 + valor_desconto_alcool_1 = alcool - desconto_alcool_1 + + desconto_alcool_2 = alcool * 0.05 + valor_desconto_alcool_2 = alcool - desconto_alcool_2 + + desconto_gasolina_1 = gasolina * 0.04 + valor_desconto_gasolina_1 = gasolina - desconto_gasolina_1 + + desconto_gasolina_2 = gasolina * 0.06 + valor_desconto_gasolina_2 = gasolina - desconto_gasolina_2 + + if tipo_de_combustivel == 'G': + if litros_de_combustivel <= 20: + print(f"'{litros_de_combustivel} litro(s) de gasolina custa(m): R$ {gasolina:.2f}. Com 4% de desconto, fica R$ {valor_desconto_gasolina_1:.2f}'") + else: + print(f"'{litros_de_combustivel} litro(s) de gasolina custa(m): R$ {gasolina:.2f}. Com 6% de desconto, fica R$ {valor_desconto_gasolina_2:.2f}'") + + elif tipo_de_combustivel == 'A': + if litros_de_combustivel <= 20: + print(f"'{litros_de_combustivel} litro(s) de álcool custa(m): R$ {alcool:.2f}. Com 3% de desconto, fica R$ {valor_desconto_alcool_1:.2f}'") + else: + print(f"'{litros_de_combustivel} litro(s) de álcool custa(m): R$ {alcool:.2f}. Com 5% de desconto, fica R$ {valor_desconto_alcool_2:.2f}'") + + else: + print('opção inválida') diff --git a/secao_02_estrutura_de_decisao/ex_27_hortifruti.py b/secao_02_estrutura_de_decisao/ex_27_hortifruti.py index 2e468a508..347d8a2ce 100644 --- a/secao_02_estrutura_de_decisao/ex_27_hortifruti.py +++ b/secao_02_estrutura_de_decisao/ex_27_hortifruti.py @@ -59,3 +59,32 @@ def calcular_preco_da_compra(kilos_de_morango: int, kilos_de_maca: int): """Escreva aqui em baixo a sua solução""" + desconto = 0 + get_preco = { + 'até_5_kg': lambda x: x <= 5, + } + for i in get_preco: + if get_preco[i](kilos_de_morango): + preco_morango = 2.50 + else: + preco_morango = 2.20 + if get_preco[i](kilos_de_maca): preco_maca = 1.80 + else: preco_maca = 1.50 + valor_total = (preco_morango * kilos_de_morango) + (preco_maca * kilos_de_maca) + kg_total = kilos_de_morango + kilos_de_maca + if kg_total > 8 or valor_total > 25: + desconto = valor_total * 0.10 + valor_total = valor_total - desconto + if kilos_de_morango == 0: + print(f'(+) Maça - valor: R$ {(preco_maca * kilos_de_maca): >5.2f} - quantidade: {kilos_de_maca} kg - preço: R$ {preco_maca:.2f}/kg') + print(f'(-) Desconto - valor: R$ {desconto: >5.2f}') + print(f' Valor Total: R$ {valor_total: >5.2f}') + elif kilos_de_maca == 0: + print(f'(+) Morango - valor: R$ {(preco_morango * kilos_de_morango): >5.2f} - quantidade: {kilos_de_morango} kg - preço: R$ {preco_morango:.2f}/kg') + print(f'(-) Desconto - valor: R$ {desconto: >5.2f}') + print(f' Valor Total: R$ {valor_total: >5.2f}') + else: + print(f'(+) Morango - valor: R$ {(preco_morango * kilos_de_morango): >5.2f} - quantidade: {kilos_de_morango} kg - preço: R$ {preco_morango:.2f}/kg') + print(f'(+) Maça - valor: R$ {(preco_maca * kilos_de_maca): >5.2f} - quantidade: {kilos_de_maca} kg - preço: R$ {preco_maca:.2f}/kg') + print(f'(-) Desconto - valor: R$ {desconto: >5.2f}') + print(f' Valor Total: R$ {valor_total: >5.2f}') diff --git a/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py b/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py index fa2daf360..b608f172e 100644 --- a/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py +++ b/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py @@ -47,3 +47,38 @@ def calcular_preco_da_carne(tipo_de_carne: str, kilos_de_carne: int, forma_de_pagamento: str) -> str: """Escreva aqui em baixo a sua solução""" + if kilos_de_carne <= 5: + if tipo_de_carne == 'Filé Duplo': + preco = 4.90 + + elif tipo_de_carne == 'Alcatra': + preco = 5.90 + + else: + preco = 6.90 + + else: + if tipo_de_carne == 'Filé Duplo': + preco = 5.80 + + elif tipo_de_carne == 'Alcatra': + preco = 6.80 + + else: + preco = 7.80 + + valor_compra = kilos_de_carne * preco + + if forma_de_pagamento == 'cartão tabajara': + desconto = (valor_compra*5)/100 + valor_total = valor_compra - desconto + desconto_str = (f'Com desconto de 5% pelo pagamento feito com cartão tabajara, fica R$ {valor_total:.2f}') + print(f"'{kilos_de_carne} kg de {tipo_de_carne} a R$ {preco:.2f}/kg saem a R$ {valor_compra:.2f}. {desconto_str}'") + + else: + if forma_de_pagamento == 'dinheiro' : + desconto_str = 'Não há desconto, pagamento feito com dinheiro' + + else: + desconto_str = 'Não há desconto, pagamento feito com pix' + print(f"'{kilos_de_carne} kg de {tipo_de_carne} a R$ {preco:.2f}/kg saem a R$ {valor_compra:.2f}. {desconto_str}'") diff --git a/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py b/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py index 168481e57..78c94e38e 100644 --- a/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py +++ b/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py @@ -34,3 +34,8 @@ def obter_numero_valido(): """Escreva aqui em baixo a sua solução""" + nota = input('Digite uma nota entre 0 e 10: ') + while nota.isdigit() == False or len(nota) > 1 and nota != '10': + print(f'Número inválido: {nota}') + nota = input('Digite uma nota entre 0 e 10: ') + print(nota) \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py b/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py index b863e1a11..a759ca34c 100644 --- a/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py +++ b/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py @@ -21,3 +21,11 @@ def validar_senha(): """Escreva aqui em baixo a sua solução""" + nome = input("Digite seu nome: ") + senha = input("Digite a senha: ") + + while nome == senha: + print("Senha deve ser diferente do login") + nome = input("Digite seu nome: ") + senha = input("Digite a senha: ") + print(f"'Cadastro realizado com suceso, seu login é {nome}'") diff --git a/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py b/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py index 35d52987e..05fc9a1fa 100644 --- a/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py +++ b/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py @@ -40,3 +40,33 @@ def cadastrar_usuario(nome: str, idade: int, salario: float, sexo: str, estado_civil: str): """Escreva aqui em baixo a sua solução""" + erros = [] + if len(nome) < 3: + erros.append (f"Erro: o nome precisa ter 3 letras ou mais, não pode ser {nome}") + if idade < 0 or idade > 150: + erros.append (f"Erro: a idade precisa estar entre 0 e 150, não pode ser {idade}") + if not salario <= 0: + erros.append (f"Erro: o salário precisa ser positivo, não pode ser {salario}") + if not sexo in ["m", "f"]: + erros.append (f'Erro: o sexo precisa ser "m" ou "f", não pode ser "{sexo}"') + if not estado_civil in ["s", "c", "v", "d"]: + erros.append (f'Erro: o estado civil precisa ser "s", "c", "v" ou "d", não pode ser "{estado_civil}"') + + if len(erros) > 0: + for i in erros: + print(i) + + else: + print('Cadastro realizado com sucesso') + + #if not erros: + #print("Cadastro com sucesso") + + #for erro in erros: + #print(erro) + + + + + + diff --git a/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py b/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py index a2109cfb5..2e1b765b0 100644 --- a/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py +++ b/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py @@ -14,5 +14,18 @@ """ +from math import floor + + def calcular_ano_ultrapassagem_populacional() -> str: """Escreva aqui em baixo a sua solução""" + populacao_a = 80_000 + populacao_b = 200_000 + taxa_crescimento_a = 1.03 + taxa_crescimento_b = 1.015 + anos = 0 + while populacao_a < populacao_b: + anos += 1 + populacao_a = (populacao_a * taxa_crescimento_a) + populacao_b = (populacao_b * taxa_crescimento_b) + print (f"'População de A, depois de {anos} ano(s) será de {populacao_a:.0f} pessoas, superando a de B, que será de {populacao_b:.0f} pessoas'") diff --git a/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py b/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py index 827d5d190..b26f8a807 100644 --- a/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py +++ b/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py @@ -23,3 +23,20 @@ def calcular_ano_ultrapassagem_populacional( populacao_menor: int, taxa_crescimento_populacao_menor: float, populacao_maior, taxa_crescimento_populacao_maior:float ) -> str: """Escreva aqui em baixo a sua solução""" + ano = 0 + + if taxa_crescimento_populacao_maior < taxa_crescimento_populacao_menor: + + while populacao_menor < populacao_maior: + populacao_menor= populacao_menor * (1 + taxa_crescimento_populacao_menor) + populacao_maior = populacao_maior * (1 + taxa_crescimento_populacao_maior) + ano += 1 + + print(f"'População de A, depois de {ano} ano(s) será de {populacao_menor:.0f} pessoas, superando a de B, que será " + f"de {populacao_maior:.0f} pessoas'") + else: + taxa_a = taxa_crescimento_populacao_menor * 100 + taxa_b = taxa_crescimento_populacao_maior * 100 + print(f"'A taxa de crescimento do país B ({taxa_b}%) deve ser menor do que a do país A ({taxa_a}%)'") + + diff --git a/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py b/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py index a72fb1d95..ca4d53c5f 100644 --- a/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py +++ b/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py @@ -33,3 +33,11 @@ def escrever_numeros_de_1_a_20(formato:str) -> str: """Escreva aqui em baixo a sua solução""" + if formato == 'um_abaixo_do_outro': + for n in range(1, 21): + print(n) + + if formato == 'um_ao_lado_do_outro': + for n in range(1, 20): + print(n, end=' ') + print(20) \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py b/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py index 3fc410ab3..1bdd64908 100644 --- a/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py +++ b/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py @@ -13,3 +13,6 @@ def calcular_maior_numero(n1: int, n2: int, n3: int, n4: int, n5: int, ) -> int: """Escreva aqui em baixo a sua solução""" + calcular_maior = [n1, n2, n3, n4, n5] + print(max(calcular_maior)) + diff --git a/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py b/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py index 86b169bb6..45398b463 100644 --- a/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py +++ b/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py @@ -16,3 +16,6 @@ def calcular_soma_e_media(n1: int, n2: int, n3: int, n4: int, n5: int) -> str: """Escreva aqui em baixo a sua solução""" + soma = n1+n2+n3+n4+n5 + media = soma/5 + print (print(f"'Soma: {soma}, Média: {media:.2f}'")) diff --git a/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py b/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py index b8a480990..13447d249 100644 --- a/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py +++ b/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py @@ -12,3 +12,9 @@ def calcular_numeros_impares_de_1_a_50() -> str: """Escreva aqui em baixo a sua solução""" + #for i in range(1,51,2): + # print (i) + numeros_impares = '1' + for i in range(3,50,2): + numeros_impares += f', {i}' + print(f"'{numeros_impares}'") diff --git a/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py b/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py index 09838c651..bf9326480 100644 --- a/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py +++ b/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py @@ -16,3 +16,10 @@ def calcular_numeros_no_intervalo(inicio: int, fim: int) -> str: """Escreva aqui em baixo a sua solução""" + if inicio > fim: + print("''") + else: + string_nums = f'{inicio}' + for i in range(inicio + 1, fim): + string_nums += f', {i}' + print(f"'{string_nums}'") \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py b/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py index 875432bf8..8361307e5 100644 --- a/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py +++ b/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py @@ -18,3 +18,16 @@ def calcular_numeros_no_intervalo_e_somar(inicio: int, fim: int) -> str: """Escreva aqui em baixo a sua solução""" + intervalo = range(inicio, fim) + soma = sum(intervalo) + if len(intervalo) == 0: + print(f"'Sequência: vazia. Soma: {soma}'") + else: + print("'Sequência: ", end='') + for c in intervalo: + if type(c) == int: + if c == intervalo[-1]: + print(c, end=f". Soma: {soma}'") + else: + print(c, end=', ') + diff --git a/secao_03_estrutura_de_repeticao/ex_12_tabuada.py b/secao_03_estrutura_de_repeticao/ex_12_tabuada.py index f066ddd5a..a07212046 100644 --- a/secao_03_estrutura_de_repeticao/ex_12_tabuada.py +++ b/secao_03_estrutura_de_repeticao/ex_12_tabuada.py @@ -124,3 +124,8 @@ def gerar_tabuada(n: int) -> str: """Escreva aqui em baixo a sua solução""" + if n>=1 and n<=10: + for count in range(10): + print("%d X %d = %d" % (n, count+1, n*(count+1)) ) + else: + print("Somente pode ser gerada tabuada de 1 a 10") diff --git a/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py b/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py index 617b82620..d621db9da 100644 --- a/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py +++ b/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py @@ -18,3 +18,8 @@ def calcular_potencia(base: int, expoente: int) -> int: """Escreva aqui em baixo a sua solução""" + resultado = 1 + for i in range(expoente): + resultado *= base + + print(f"{resultado}") \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py b/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py index 2881cc0a0..564e25674 100644 --- a/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py +++ b/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py @@ -18,3 +18,12 @@ def calcular_qtde_numeros_pares_e_impares(n1: int, n2: int, n3: int, n4: int, n5: int, n6: int, n7: int, n8: int, n9: int, n10: int) -> str: """Escreva aqui em baixo a sua solução""" + numeros = [n1, n2, n3, n4, n5, n6, n7, n8, n9, n10] + par =[] + impar=[] + for valor in numeros: + if valor % 2 == 0: + par.append(valor) + else: + impar.append(valor) + print("'Existem" , len(par),"números pares e" , len(impar),"números impares'") diff --git a/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py b/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py index bde925c25..09635b81a 100644 --- a/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py +++ b/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py @@ -25,3 +25,13 @@ def calcular_serie_de_fibonacci(n: int) -> str: """Escreva aqui em baixo a sua solução""" + fibonnacci = [1,1] + i = 2 + + if n == 1: + print("'1'") + else: + while i < n: + fibonnacci.append(fibonnacci[-2] + fibonnacci[-1]) + i += 1 + print("'" + ", ".join(map(str, fibonnacci)) + "'") diff --git a/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py b/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py index ab7c70038..b95cf1dda 100644 --- a/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py +++ b/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py @@ -12,3 +12,11 @@ def calcular_serie_de_fibonacci_ate_valor_ser_maior_que_500() -> str: """Escreva aqui em baixo a sua solução""" + fibonacci = [] + numero = 1 + anterior = 0 + while numero <= 500: + numero += anterior + anterior = numero - anterior + fibonacci.append(str(numero)) + print(f"'0, 1, {', '.join(fibonacci)}'") diff --git a/secao_03_estrutura_de_repeticao/ex_17_fatorial.py b/secao_03_estrutura_de_repeticao/ex_17_fatorial.py index 0188fcfa3..8b01e41b6 100644 --- a/secao_03_estrutura_de_repeticao/ex_17_fatorial.py +++ b/secao_03_estrutura_de_repeticao/ex_17_fatorial.py @@ -23,3 +23,9 @@ def calcular_fatorial(n: int) -> int: """Escreva aqui em baixo a sua solução""" + numero_inteiro = n + for i in range(1, n): + numero_inteiro *= (n - i) + if numero_inteiro == 0: + numero_inteiro = 1 + print(numero_inteiro) diff --git a/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py b/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py index 45f349446..ab248e04a 100644 --- a/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py +++ b/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py @@ -18,3 +18,8 @@ def calcular_estatisticas(*numeros) -> str: """Escreva aqui em baixo a sua solução""" + if len(numeros) == 0: + print("'Maior valor: não existe. Menor valor: não existe. Soma: 0'") + else: + print(f"'Maior valor: {max(numeros)}. Menor valor: {min(numeros)}. Soma: {sum(numeros)}'") + diff --git a/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py b/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py index e49bbed45..63059f6d7 100644 --- a/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py +++ b/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py @@ -24,3 +24,14 @@ def calcular_estatisticas(*numeros) -> str: """Escreva aqui em baixo a sua solução""" + if len(numeros) == 0: + print("'Maior valor: não existe. Menor valor: não existe. Soma: 0'") + else: + entrada = True + for c in range(0, len(numeros)): + if numeros[c] < 0 or numeros[c] > 1000: + print("'Somente números de 0 a 1000 são permitidos'") + c+=1 + entrada = False + if entrada == True: + print(f"'Maior valor: {max(numeros)}. Menor valor: {min(numeros)}. Soma: {sum(numeros)}'") diff --git a/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py b/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py index 641981165..0162eee8f 100644 --- a/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py +++ b/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py @@ -33,3 +33,9 @@ def calcular_fatorial(n: int) -> int: """Escreva aqui em baixo a sua solução""" + import math + + if n <= 0 or n > 16 or type(n) == float: + print(f"'Apenas valores positivos, inteiros e menores que 16 são válidos. Não é possível calcular para {n}'") + else: + print(math.factorial(n)) diff --git a/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py b/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py index 442baff57..41d98f004 100644 --- a/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py +++ b/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py @@ -39,3 +39,16 @@ def eh_primo(n: int) -> bool: """Escreva aqui em baixo a sua solução""" + numero_inteiro = 0 + + if n == 1 or n == 0: + print(False) + elif n > 1: + for c in range(2, n): + if (n % c == 0): + numero_inteiro += 1 + if(numero_inteiro == 0): + print(True) + else: + print(False) + diff --git a/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py b/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py index 4fe3d89f1..d17949caf 100644 --- a/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py +++ b/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py @@ -50,3 +50,16 @@ def eh_primo(n: int) -> bool: """Escreva aqui em baixo a sua solução""" + cont = 0 + if n == 1 or n == 0: + return False + elif n == 2: + return True + else: + for i in range(2, n): + if n % i == 0: + print(f"É divisível por {i}") + cont += 1 + if cont > 0: + return False + return True diff --git a/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py b/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py index 3a3703c9b..8398d2269 100644 --- a/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py +++ b/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py @@ -43,3 +43,23 @@ def calcular_primos_e_divisoes(n: int) -> Tuple[str, int]: """Escreva aqui em baixo a sua solução""" + if n < 2: + return ('', 0) + elif n == 2: + return ('2', 0) + else: + numero_primo = [] + for p in range(2, n+1): + e_primo = True + count = 2 + + while count < p: + if p % (count) == 0: + e_primo = False + count += 1 + + if(e_primo): + numero_primo.append(p) + + primos = ', '.join(str(i) for i in numero_primo) + return (primos, count-2) diff --git a/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py b/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py index 9cf378f6d..dbd68906a 100644 --- a/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py +++ b/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py @@ -18,3 +18,11 @@ def calcular_media(*notas) -> float: """Escreva aqui em baixo a sua solução""" + if len(notas) == 0: + return 'É necessária ao menos uma nota para calcular a média' + notas = notas + media = sum(notas) / len(notas) + if media.is_integer(): + return int(media) + return media + diff --git a/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py b/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py index 9d56fcb6e..1b538b5df 100644 --- a/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py +++ b/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py @@ -24,3 +24,15 @@ def classifcar_turma(*idades) -> str: """Escreva aqui em baixo a sua solução""" + contador = 0 + soma = 0 + for i in idades: + soma += i + contador += 1 + media = soma / contador + if media < 26: + print(f"'A turma é jovem, pois a média é de {media:.1f} anos'") + if media >26 and media < 60: + print(f"'A turma é adulta, pois a média é de {media:.1f} anos'") + if media >= 60: + print(f"'A turma é idosa, pois a média é de {media:.1f} anos'") \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py b/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py index 95d99b4f8..7dd3e7261 100644 --- a/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py +++ b/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py @@ -36,3 +36,22 @@ def calcular_votos(*votos): """Escreva aqui em baixo a sua solução""" + + candidato_corrupto = 0 + candidato_mentiroso = 0 + candidato_rouba = 0 + + for escolha in votos: + if escolha == 'corrupto': + candidato_corrupto += 1 + elif escolha == 'mentiroso': + candidato_mentiroso += 1 + elif escolha == 'rouba, mas faz': + candidato_rouba += 1 + + total_votos = len(votos) + + print(f"Votantes: {total_votos}") + print(f"Votos no candidato corrupto: {candidato_corrupto}") + print(f"Votos no candidato mentiroso: {candidato_mentiroso}") + print(f"Votos no candidato rouba, mas faz: {candidato_rouba}") diff --git a/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py b/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py index af39440e3..faef86b0c 100644 --- a/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py +++ b/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py @@ -36,3 +36,16 @@ def calcular_media_de_alunos_por_turma(): """Escreva aqui em baixo a sua solução""" + turmas = input("Informe a quantidade de turmas: ") + print(f"Número de turmas: {turmas}") + i = 0 + media = 0 + while i < int(turmas): + alunos = int(input("Informe o número de alunos:")) + if 0 < alunos <= 40: + media += (alunos/int(turmas)) + i += 1 + else: + print(f"Uma turma deve ter de 1 a 40 alunos, não é possível ter {alunos} alunos") + print(f"Média de alunos por turma: {(media):.0f}") + diff --git a/secao_03_estrutura_de_repeticao/ex_28_colecao_de_cds.py b/secao_03_estrutura_de_repeticao/ex_28_colecao_de_cds.py index 557cb3bf3..5399a5fc3 100644 --- a/secao_03_estrutura_de_repeticao/ex_28_colecao_de_cds.py +++ b/secao_03_estrutura_de_repeticao/ex_28_colecao_de_cds.py @@ -38,3 +38,18 @@ def calcular_estatisticas_colecao_de_cd(): """Escreva aqui em baixo a sua solução""" + qtd_cds = int(input('Digite a quantidade de cds: ')) + valor_cd = 0 + contador = 0 + valor_total = 0 + + while contador < qtd_cds: + valor_cd = float(input('Digite o valor')) + valor_total += valor_cd + contador += 1 + + media = round(valor_total / qtd_cds) + + print(f'Número de cds: {qtd_cds}') + print(f'Valor total da coleção: R$ {valor_total:.2f}') + print(f'Custo médio dos cds: R$ {media:.2f}') diff --git a/secao_03_estrutura_de_repeticao/ex_29_loja_manuel_01.py b/secao_03_estrutura_de_repeticao/ex_29_loja_manuel_01.py index e701d9a65..5d14b147f 100644 --- a/secao_03_estrutura_de_repeticao/ex_29_loja_manuel_01.py +++ b/secao_03_estrutura_de_repeticao/ex_29_loja_manuel_01.py @@ -67,3 +67,13 @@ def gerar_tabela_de_precos(): """Escreva aqui em baixo a sua solução""" + print(f'Lojas Quase Dois - Tabela de preços') + c = 0 + valor = 0 + valor_1 = 1.99 + + for c in range(1, 51): + valor = valor + valor_1 + print(f'{c}'.ljust(2), f'- R$ {valor:5.2f}') + + c += 1 \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_30_padaria_manuel.py b/secao_03_estrutura_de_repeticao/ex_30_padaria_manuel.py index 4c3ab1f0b..689d80c45 100644 --- a/secao_03_estrutura_de_repeticao/ex_30_padaria_manuel.py +++ b/secao_03_estrutura_de_repeticao/ex_30_padaria_manuel.py @@ -119,3 +119,7 @@ def gerar_tabela_de_precos(preco_por_pao: float): """Escreva aqui em baixo a sua solução""" + print(f"Preço do pão: R$ {preco_por_pao}") + print(f"Panificadora Pão de Ontem - Tabela de preços") + for i in range(1, 51): + print(f"{i:<2d} - R$ {i*preco_por_pao:6.2f}") diff --git a/secao_03_estrutura_de_repeticao/ex_31_conveniencia_manuel.py b/secao_03_estrutura_de_repeticao/ex_31_conveniencia_manuel.py index a7dcd9caa..d117eee8f 100644 --- a/secao_03_estrutura_de_repeticao/ex_31_conveniencia_manuel.py +++ b/secao_03_estrutura_de_repeticao/ex_31_conveniencia_manuel.py @@ -56,3 +56,35 @@ def rodar_programa_de_caixa(): """Escreva aqui em baixo a sua solução""" + contador = 0 + total = 0 + dinheiro = 0 + lista = [] + + while contador < 1: + valor_produto = float(input('Digite o valor do produto:')) + lista.append(valor_produto) + + if lista[0] == -1: + print(f'Lojas Tabajara') + print(f'-------------------') + contador += 1 + else: + + if valor_produto == -1 or valor_produto == 0: + dinheiro = float(input('Digite o valor pago:')) + if valor_produto == -1: + contador += 1 + + troco = dinheiro - total + print(f'Lojas Tabajara') + print(f'Total : R$ {total:.2f}') + print(f'Dinheiro : R$ {dinheiro:5.2f}') + print(f'Troco : R$ {troco:.2f}') + print(f'-------------------') + total = 0 + else: + total += valor_produto + print(f'Programa encerrado!') + + diff --git a/secao_03_estrutura_de_repeticao/ex_32_fatorial_com_operacoes.py b/secao_03_estrutura_de_repeticao/ex_32_fatorial_com_operacoes.py index f9f7a9078..2e06f0538 100644 --- a/secao_03_estrutura_de_repeticao/ex_32_fatorial_com_operacoes.py +++ b/secao_03_estrutura_de_repeticao/ex_32_fatorial_com_operacoes.py @@ -23,6 +23,14 @@ """ +import math def calcular_fatorial(n: int): """Escreva aqui em baixo a sua solução""" + fatorial = f'{n}' + for i in range(n-1, 0, -1): + fatorial += f' . {i}' + print(f"Fatorial de {n}:") + print(f"{n}! = {fatorial} = {math.factorial(n)}") + + diff --git a/secao_03_estrutura_de_repeticao/ex_33_estatisticas_de_temperaturas.py b/secao_03_estrutura_de_repeticao/ex_33_estatisticas_de_temperaturas.py index d5df1c075..7338991cc 100644 --- a/secao_03_estrutura_de_repeticao/ex_33_estatisticas_de_temperaturas.py +++ b/secao_03_estrutura_de_repeticao/ex_33_estatisticas_de_temperaturas.py @@ -22,3 +22,11 @@ def calcular_estatisticas(*temperaturas) -> str: """Escreva aqui em baixo a sua solução""" + if len(temperaturas) == 0: + print("'Maior temperatura: não existe. Menor temperatura: não existe. Média: não existe'") + else: + for i in temperaturas: + maior_temperatura = max(temperaturas) + menor_temperatura = min(temperaturas) + media = sum(temperaturas) / len(temperaturas) + print(f"'Maior temperatura: {maior_temperatura}. Menor temperatura: {menor_temperatura}. Média: {media:.1f}'") diff --git a/secao_03_estrutura_de_repeticao/ex_36_tabuada_com_intervalo.py b/secao_03_estrutura_de_repeticao/ex_36_tabuada_com_intervalo.py index 08af06200..5152d6442 100644 --- a/secao_03_estrutura_de_repeticao/ex_36_tabuada_com_intervalo.py +++ b/secao_03_estrutura_de_repeticao/ex_36_tabuada_com_intervalo.py @@ -39,3 +39,8 @@ def gerar_tabuada(n: int, de: int, ate: int): """Escreva aqui em baixo a sua solução""" + if de > ate: + print(f"O limite final ({ate}) deve ser maior que o inicial ({de})") + else: + for i in range(de, ate+1): + print(f"{n} X {i} = {n*i}") diff --git a/secao_03_estrutura_de_repeticao/ex_37_senso_de_academia.py b/secao_03_estrutura_de_repeticao/ex_37_senso_de_academia.py index 043c1f3eb..2c0f0fe18 100644 --- a/secao_03_estrutura_de_repeticao/ex_37_senso_de_academia.py +++ b/secao_03_estrutura_de_repeticao/ex_37_senso_de_academia.py @@ -56,3 +56,5 @@ def rodar_senso(): """Escreva aqui em baixo a sua solução""" + + diff --git a/secao_03_estrutura_de_repeticao/ex_38_aumento_salarial.py b/secao_03_estrutura_de_repeticao/ex_38_aumento_salarial.py index 60e474b23..1c546e8ff 100644 --- a/secao_03_estrutura_de_repeticao/ex_38_aumento_salarial.py +++ b/secao_03_estrutura_de_repeticao/ex_38_aumento_salarial.py @@ -30,3 +30,15 @@ def calcular_salarios_anuais(salario: float): """Escreva aqui em baixo a sua solução""" + print(f'''Salário em 2018: R$ {"%.2f" %salario}''') + inicio = 2018 + evolucao = 2023 + anos = evolucao - inicio + aumento = 0.015 + salario_atual = salario + for i in range(anos): + inicio += 1 + salario_atual = salario_atual + (salario_atual*aumento) + print(f'''Salário em {inicio}: R$ {"%.2f" %salario_atual}. Aumento porcentual: {"%.2f" %(aumento*100)}%''') + aumento += aumento + diff --git a/secao_03_estrutura_de_repeticao/ex_39_sala_de_aula.py b/secao_03_estrutura_de_repeticao/ex_39_sala_de_aula.py index a475a9d1e..8b5f004b6 100644 --- a/secao_03_estrutura_de_repeticao/ex_39_sala_de_aula.py +++ b/secao_03_estrutura_de_repeticao/ex_39_sala_de_aula.py @@ -17,3 +17,17 @@ def calcular_aluno_mais_baixo_e_mais_alto(*alunos) -> str: """Escreva aqui em baixo a sua solução""" + altura_minima = 99999 + altura_maxima = 0 + nome_aluno = '' + altura_aluno = '' + + for aluno in alunos: + if aluno[1] < altura_minima: + altura_minima = aluno[1] + nome_aluno = aluno[0] + if aluno[1] > altura_maxima: + altura_max = aluno[1] + altura_aluno = aluno[0] + + print(f"'O maior aluno é o {altura_aluno} com {altura_max} cm. O menor aluno é o {nome_aluno} com {altura_minima} cm'") \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_40_transito.py b/secao_03_estrutura_de_repeticao/ex_40_transito.py index e187f0942..31f0557af 100644 --- a/secao_03_estrutura_de_repeticao/ex_40_transito.py +++ b/secao_03_estrutura_de_repeticao/ex_40_transito.py @@ -25,6 +25,8 @@ A média de acidentes total nas cidades com menos de 150 mil carros é de 900.0 acidentes. """ +import math def calcular_estatisticas(*cidades): """Escreva aqui em baixo a sua solução""" + diff --git a/secao_03_estrutura_de_repeticao/ex_41_financiamento.py b/secao_03_estrutura_de_repeticao/ex_41_financiamento.py index 9d16a2335..16b3bd325 100644 --- a/secao_03_estrutura_de_repeticao/ex_41_financiamento.py +++ b/secao_03_estrutura_de_repeticao/ex_41_financiamento.py @@ -32,3 +32,16 @@ def gerar_dados_de_financiamente(valor_inicial: float): """Escreva aqui em baixo a sua solução""" + juros = 0.10 + divida = valor_inicial + parcela = 0 + + print("Valor da Dívida Valor dos Juros Quantidade de Parcelas Valor da Parcela") + print(f"R$ {valor_inicial:.2f} 0% 1 R$ {valor_inicial:.2f}") + + for qtd_parcelas in range(3,14,3): + adicional_do_juros = valor_inicial * juros + divida = valor_inicial + adicional_do_juros + parcela = divida /qtd_parcelas + print(f"R$ {divida:<12.2f} {juros:<15.0%} {qtd_parcelas:<23.0f} R$ {parcela:9.2f}") + juros += 0.05 diff --git a/secao_03_estrutura_de_repeticao/ex_42_intervalos.py b/secao_03_estrutura_de_repeticao/ex_42_intervalos.py index 9699874c2..6ab69367f 100644 --- a/secao_03_estrutura_de_repeticao/ex_42_intervalos.py +++ b/secao_03_estrutura_de_repeticao/ex_42_intervalos.py @@ -40,3 +40,19 @@ def listar_numeros_para_avaliacao(): """Escreva aqui em baixo a sua solução""" + lista = [] + numero = 0 + while numero >= 0: + numero = int(input('')) + lista.append(numero) + intervalo = {0:25, 26:50, 51:75, 76:100} + + for inicio, fim in intervalo.items(): + contador = 0 + for i in lista: + if i in range(inicio, fim+1): + contador += 1 + if inicio == 0: + print(f'{contador} número(s) entre o intervalo de zero a {fim}') + elif contador > 0: + print(f'{contador} número(s) entre o intervalo de {inicio} a {fim}') diff --git a/secao_03_estrutura_de_repeticao/ex_43_lanchonete.py b/secao_03_estrutura_de_repeticao/ex_43_lanchonete.py index f2b3ffc40..345d6581c 100644 --- a/secao_03_estrutura_de_repeticao/ex_43_lanchonete.py +++ b/secao_03_estrutura_de_repeticao/ex_43_lanchonete.py @@ -109,3 +109,27 @@ def fechar_conta(*itens): """Escreva aqui em baixo a sua solução""" + print('_____________________________________________________________________________') + print('| RESUMO DA CONTA |') + print('|---------------------------------------------------------------------------|') + print('| Epecificação | Código | Preço Unitário (R$) | Quantidade | Total (R$) |') + preco_total = quantidade_total = 0 + codigo_quantidade = {'100':0,'101':0,'102':0,'103':0,'104':0,'105':0} + codigo_preco = {'100':1.2,'101':1.3,'102':1.5,'103':1.2,'104':1.3,'105':1.0} + codigo_nome = {'100': 'Cachorro Quente', '101': 'Bauru Simples', '102': 'Bauru com Ovo', '103': 'Hamburger', + '104': 'Cheeseburger', '105': 'Refrigerante'} + + + for codigo, quantidade in itens: + codigo_quantidade[codigo] += quantidade + codigo_preco[codigo] *= codigo_quantidade.get(codigo) + for codigo1, nome in codigo_nome.items(): + for codigo2, preco in codigo_preco.items(): + for codigo3, quantidade in codigo_quantidade.items(): + if codigo1 == codigo2 and codigo2 == codigo3 and quantidade > 0: + print(f'| {nome:<16} | {codigo1:<7}| {(preco/quantidade):<20.2f}|{quantidade:>11} |{preco:>11.2f} |') + preco_total += preco + quantidade_total += quantidade + print('|---------------------------------------------------------------------------|') + print('| Total Geral:'.ljust(49), f'|{quantidade_total:>11} |{preco_total:>11.2f} |') + print('-----------------------------------------------------------------------------') \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_44_eleicao_presidencial.py b/secao_03_estrutura_de_repeticao/ex_44_eleicao_presidencial.py index ffbea93fd..c8a9a152b 100644 --- a/secao_03_estrutura_de_repeticao/ex_44_eleicao_presidencial.py +++ b/secao_03_estrutura_de_repeticao/ex_44_eleicao_presidencial.py @@ -90,3 +90,21 @@ def apurar_votos(*votos): """Escreva aqui em baixo a sua solução""" + candidatos ={ + '1': 'Bostonaro ', + '2': 'Luladrão ', + '3': 'Dilmanta ', + '4': 'FHC Isentão ', + '5': 'Votos Nulos ', + '6': 'Votos Brancos' + } + qtd_votos = Counter(votos) + + print('Código do Candidato Nome do Candidato Votos Porcentagem sobre total') + for n, name in candidatos.items(): + voto = qtd_votos[n] + percentual = voto*100/len(votos) + print(f'{n:1s} {name:<1s} {voto:<1n} {percentual:>5.1f}%') + + if int(n)==4: + print('-------------------------------------------------------------------') diff --git a/secao_03_estrutura_de_repeticao/ex_45_corretor_de_provas.py b/secao_03_estrutura_de_repeticao/ex_45_corretor_de_provas.py index 398f1292b..15dedc364 100644 --- a/secao_03_estrutura_de_repeticao/ex_45_corretor_de_provas.py +++ b/secao_03_estrutura_de_repeticao/ex_45_corretor_de_provas.py @@ -49,3 +49,34 @@ def corrigir(*provas): """Escreva aqui em baixo a sua solução""" + resposta = ['', 'A', 'B', 'C', 'D', 'E', 'E', 'D', 'C', 'B', 'A'] + i = 0 + alunos = [] + notas = [] + while i < len(provas): + nome = provas[i][0] + alunos.append(nome) + acertos = 0 + for f in range(1,11): + if provas[i][f] == resposta [f]: + acertos += 1 + notas.append(acertos) + i += 1 + print(f'Aluno Nota') + i = 0 + maior_nota = menor_nota = notas[0] + soma = 0 + for i in range(len(provas)): + print(f'{alunos[i]} {notas[i]}') + if notas[i] > maior_nota: + maior_nota = notas[i] + if notas[i] < menor_nota: + menor_nota = notas[i] + soma += notas[i] + media = soma / len(provas) + print(f'---------------------------') + print(f'Média geral: {media:.1f}') + print(f'Maior nota: {maior_nota}') + print(f'Menor nota: {menor_nota}') + print(f'Total de Alunos: {len(provas)}') + diff --git a/secao_03_estrutura_de_repeticao/ex_46_salto_em_distancia.py b/secao_03_estrutura_de_repeticao/ex_46_salto_em_distancia.py index 84e3f028a..1b04d4d98 100644 --- a/secao_03_estrutura_de_repeticao/ex_46_salto_em_distancia.py +++ b/secao_03_estrutura_de_repeticao/ex_46_salto_em_distancia.py @@ -45,6 +45,24 @@ """ +from statistics import mean + def calcular_estatiscas_do_salto(nome, *saltos): """Escreva aqui em baixo a sua solução""" + + print(f'Atleta: {nome}') + print('---------------------------------') + lista_de_saltos = [] + ordem_dos_saltos = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto'] + for i in range(0,5): + lista_de_saltos.append(saltos[i]) + for distancia, ordem in zip(lista_de_saltos, ordem_dos_saltos): + print(f'{ordem} Salto: {distancia} m') + lista_de_saltos.sort() + print('---------------------------------') + print(f'Melhor salto: {lista_de_saltos[4]} m') + print(f'Pior salto: {lista_de_saltos[0]} m') + print(f'Média dos demais saltos: {mean(lista_de_saltos[1:-2]) :.1f} m') + print('---------------------------------') + print(f'Resultado final:\n{nome}: {mean(lista_de_saltos[1:-2]) :.1f} m') diff --git a/secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py b/secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py index 831645565..b8025feb8 100644 --- a/secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py +++ b/secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py @@ -21,3 +21,5 @@ def inverter_inteiro(numero): """Escreva aqui em baixo a sua solução""" + invertido = int(str(numero)[::-1]) + print(invertido) diff --git a/secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py b/secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py index b37f8e821..84ec69554 100644 --- a/secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py +++ b/secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py @@ -37,3 +37,18 @@ def imprimir_serie(n): """Escreva aqui em baixo a sua solução""" + numerador = 1 + contador = 1 + soma = 0 + print('S =', end=' ') + while n > 0: + if n == 1: + print(f'{numerador}/{contador}') + else: + print(f'{numerador}/{contador} +', end=' ') + valor = numerador/contador + soma+= valor + numerador+=1 + contador+=2 + n-=1 + print(f'soma = {soma}') diff --git a/secao_03_estrutura_de_repeticao/ex_50_soma_serie.py b/secao_03_estrutura_de_repeticao/ex_50_soma_serie.py index 0a325c4f8..1552ddeed 100644 --- a/secao_03_estrutura_de_repeticao/ex_50_soma_serie.py +++ b/secao_03_estrutura_de_repeticao/ex_50_soma_serie.py @@ -29,3 +29,13 @@ def soma_serie(n): """Escreva aqui em baixo a sua solução""" + numerador = 1 + contador = 1 + + resultado = [] + + for i in range(1,n+1): + resultado.append(numerador/contador) + contador += 1 + soma = sum(resultado) + print(f"H = {soma}") diff --git a/secao_04_exercicios_lista/ex_01_vetor_5_numeros.py b/secao_04_exercicios_lista/ex_01_vetor_5_numeros.py index 14a81a7b1..a453be8bb 100644 --- a/secao_04_exercicios_lista/ex_01_vetor_5_numeros.py +++ b/secao_04_exercicios_lista/ex_01_vetor_5_numeros.py @@ -4,7 +4,12 @@ Faça um Programa que leia um vetor de 5 números inteiros e mostre-os. - >>> ler_5_valores() + >>> from secao_04_exercicios_lista import ex_01_vetor_5_numeros + >>> numeros_vetor=[13, 15, 20, 50, 10] + >>> ex_01_vetor_5_numeros.input = lambda k: numeros_vetor.pop() + >>> ex_01_vetor_5_numeros.ler_5_valores() + [10, 50, 20, 15, 13] + """ @@ -12,3 +17,7 @@ def ler_5_valores(): """Escreva aqui em baixo a sua solução""" + + + +