diff --git a/.github/workflows/corretor_de_exercicios_secao_04.yml b/.github/workflows/corretor_de_exercicios_secao_04.yml index 8d1bfac7e..707408530 100644 --- a/.github/workflows/corretor_de_exercicios_secao_04.yml +++ b/.github/workflows/corretor_de_exercicios_secao_04.yml @@ -19,6 +19,30 @@ jobs: if: always() run: | python -m doctest -f secao_04_exercicios_lista/ex_01_vetor_5_numeros.py + - name: Correção do Exercício 05 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_05_vetore_par_e_impar.py + - name: Correção do Exercício 09 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_09_soma_de_quadrados.py + - name: Correção do Exercício 10 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_10_intercalacao_de_vetores.py + - name: Correção do Exercício 11 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_11_intercalacao_de_3_vetores.py + - name: Correção do Exercício 12 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_12_filtro_de_baixinhos.py + - name: Correção do Exercício 13 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_13_media_de_temperaturas_anual.py - name: Correção do Exercício 24 da seção de Listas if: always() run: | diff --git a/.github/workflows/corretor_de_exercicios_secao_06.yml b/.github/workflows/corretor_de_exercicios_secao_06.yml index 99c3cdb1f..38572f5b8 100644 --- a/.github/workflows/corretor_de_exercicios_secao_06.yml +++ b/.github/workflows/corretor_de_exercicios_secao_06.yml @@ -19,3 +19,11 @@ jobs: if: always() run: | python -m doctest -f secao_06_exercicios_strings/ex_01_comparador_de_strings.py + - name: Correção do Exercício 02 da seção de Strings + if: always() + run: | + python -m doctest -f secao_06_exercicios_strings/ex_02_inversor_maisculo.py + - name: Correção do Exercício 05 da seção de Strings + if: always() + run: | + python -m doctest -f secao_06_exercicios_strings/ex_05_nome_vertical_escada_invertida.py diff --git a/secao_03_estrutura_de_repeticao/ex_40_transito.py b/secao_03_estrutura_de_repeticao/ex_40_transito.py index 3cfe24f2d..e187f0942 100644 --- a/secao_03_estrutura_de_repeticao/ex_40_transito.py +++ b/secao_03_estrutura_de_repeticao/ex_40_transito.py @@ -19,10 +19,10 @@ >>> calcular_estatisticas(('SJC', 190_000, 300), ('SP', 1_000_000, 2_000 ), ... ('BH', 800_000, 1000), ('FZ', 600_000, 700), ('FL', 150_000, 900) ... ) - O maior índice de acidentes é de FL, com 6.0 acidentes por mil habitantes. - O menor índice de acidentes é de FZ, com 1.2 acidentes por mil habitantes. + O maior índice de acidentes é de FL, com 6.0 acidentes por mil carros. + O menor índice de acidentes é de FZ, com 1.2 acidentes por mil carros. O média de veículos por cidade é de 548000. - A média de acidentes total nas cidades com menos de 150 mil habitantes é de 900.0 acidentes. + A média de acidentes total nas cidades com menos de 150 mil carros é de 900.0 acidentes. """ 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 98b73fbd7..831645565 100644 --- a/secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py +++ b/secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py @@ -4,17 +4,16 @@ Faça um programa que peça um numero inteiro positivo e em seguida mostre este numero invertido. Exemplo: - entrada => 12376489 - saida => 98467321 + entrada => 12376489 + saida => 98467321 - >>> from secao_03_estrutura_de_repeticao import ex_48_inteiro_invertido - >>> ex_48_inteiro_invertido.inverter_inteiro(0) + >>> inverter_inteiro(0) 0 - >>> ex_48_inteiro_invertido.inverter_inteiro(123456789) + >>> inverter_inteiro(123456789) 987654321 - >>> ex_48_inteiro_invertido.inverter_inteiro(3454232311243232979128123) + >>> inverter_inteiro(3454232311243232979128123) 3218219792323421132324543 - >>> ex_48_inteiro_invertido.inverter_inteiro(987654321) + >>> inverter_inteiro(987654321) 123456789 """ 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 c8bbce980..b37f8e821 100644 --- a/secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py +++ b/secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py @@ -19,17 +19,16 @@ ---------------------------------- - >>> from secao_03_estrutura_de_repeticao import ex_49_imprimir_serie - >>> ex_49_imprimir_serie.imprimir_serie(5) + >>> imprimir_serie(5) S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 soma = 3.393650793650793 - >>> ex_49_imprimir_serie.imprimir_serie(7) + >>> imprimir_serie(7) S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + 6/11 + 7/13 soma = 4.477566877566877 - >>> ex_49_imprimir_serie.imprimir_serie(3) + >>> imprimir_serie(3) S = 1/1 + 2/3 + 3/5 soma = 2.2666666666666666 - >>> ex_49_imprimir_serie.imprimir_serie(9) + >>> imprimir_serie(9) S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + 6/11 + 7/13 + 8/15 + 9/17 soma = 5.540311975606093 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 626184173..0a325c4f8 100644 --- a/secao_03_estrutura_de_repeticao/ex_50_soma_serie.py +++ b/secao_03_estrutura_de_repeticao/ex_50_soma_serie.py @@ -15,14 +15,13 @@ ---------------------------------- - >>> from secao_03_estrutura_de_repeticao import ex_50_soma_serie - >>> ex_50_soma_serie.soma_serie(5) + >>> soma_serie(5) H = 2.283333333333333 - >>> ex_50_soma_serie.soma_serie(7) + >>> soma_serie(7) H = 2.5928571428571425 - >>> ex_50_soma_serie.soma_serie(17) + >>> soma_serie(17) H = 3.439552522640758 - >>> ex_50_soma_serie.soma_serie(2) + >>> soma_serie(2) H = 1.5 """ diff --git a/secao_04_exercicios_lista/ex_05_vetore_par_e_impar.py b/secao_04_exercicios_lista/ex_05_vetore_par_e_impar.py new file mode 100644 index 000000000..9eec1cf20 --- /dev/null +++ b/secao_04_exercicios_lista/ex_05_vetore_par_e_impar.py @@ -0,0 +1,21 @@ +""" +Exercício 05 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Faça um Programa que receba um vetor de inteiros. Armazene os números pares no vetor PAR e os +números IMPARES no vetor impar. Imprima os três vetores. + + >>> separar_em_vertores_par_e_impar([]) + 'Vetor original: []. Vetor com elementos pares: []. Vetor com elementos impares: [].' + >>> separar_em_vertores_par_e_impar([1]) + 'Vetor original: [1]. Vetor com elementos pares: []. Vetor com elementos impares: [1].' + >>> separar_em_vertores_par_e_impar([1, 2]) + 'Vetor original: [1, 2]. Vetor com elementos pares: [2]. Vetor com elementos impares: [1].' + >>> separar_em_vertores_par_e_impar(list(range(10))) + 'Vetor original: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]. Vetor com elementos pares: [0, 2, 4, 6, 8]. Vetor com elementos impares: [1, 3, 5, 7, 9].' + +""" + + +def separar_em_vertores_par_e_impar(inteiros: list) -> str: + """Escreva aqui em baixo a sua solução""" diff --git a/secao_04_exercicios_lista/ex_09_soma_de_quadrados.py b/secao_04_exercicios_lista/ex_09_soma_de_quadrados.py new file mode 100644 index 000000000..ebe8d34ee --- /dev/null +++ b/secao_04_exercicios_lista/ex_09_soma_de_quadrados.py @@ -0,0 +1,21 @@ +""" +Exercício 09 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Faça um Programa que receba um vestor de números inteiros, calcule e mostre a soma dos quadrados dos elementos do +vetor. + + >>> calcular_soma_de_quadrados([]) + 0 + >>> calcular_soma_de_quadrados([1]) + 1 + >>> calcular_soma_de_quadrados([1, 2]) + 5 + >>> calcular_soma_de_quadrados(list(range(10))) + 285 + +""" + + +def calcular_soma_de_quadrados(inteiros: list) -> int: + """Escreva aqui em baixo a sua solução""" diff --git a/secao_04_exercicios_lista/ex_10_intercalacao_de_vetores.py b/secao_04_exercicios_lista/ex_10_intercalacao_de_vetores.py new file mode 100644 index 000000000..403990b87 --- /dev/null +++ b/secao_04_exercicios_lista/ex_10_intercalacao_de_vetores.py @@ -0,0 +1,22 @@ +""" +Exercício 10 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Faça um Programa receba dois vetores com mesmo tamanho. Gere um terceiro vetor com o dobro elementos, cujos valores +deverão ser compostos pelos elementos intercalados dos dois outros vetores. + + >>> intercalar([], []) + [] + >>> intercalar([1],[2]) + [1, 2] + >>> intercalar([1, 2], [3, 4]) + [1, 3, 2, 4] + >>> intercalar(list(range(10)), list(range(10, 20))) + [0, 10, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19] + +""" + + +def intercalar(lista_1: list, lista_2: list) -> list: + """Escreva aqui em baixo a sua solução""" + diff --git a/secao_04_exercicios_lista/ex_11_intercalacao_de_3_vetores.py b/secao_04_exercicios_lista/ex_11_intercalacao_de_3_vetores.py new file mode 100644 index 000000000..6d4f73a61 --- /dev/null +++ b/secao_04_exercicios_lista/ex_11_intercalacao_de_3_vetores.py @@ -0,0 +1,21 @@ +""" +Exercício 11 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Altere o programa anterior, intercalando 3 vetores. + + >>> intercalar([], [], []) + [] + >>> intercalar([1], [2], [3]) + [1, 2, 3] + >>> intercalar([1, 2], [3, 4], [5, 6]) + [1, 3, 5, 2, 4, 6] + >>> intercalar(list(range(5)), list(range(5, 10)), list(range(10, 15))) + [0, 5, 10, 1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14] + +""" + + +def intercalar(lista_1: list, lista_2: list, lista_3: list) -> list: + """Escreva aqui em baixo a sua solução""" + diff --git a/secao_04_exercicios_lista/ex_12_filtro_de_baixinhos.py b/secao_04_exercicios_lista/ex_12_filtro_de_baixinhos.py new file mode 100644 index 000000000..c4befc003 --- /dev/null +++ b/secao_04_exercicios_lista/ex_12_filtro_de_baixinhos.py @@ -0,0 +1,43 @@ +""" +Exercício 12 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Foram anotados os nomes, as idades e alturas de de vários alunos. +Faça um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior à média de altura desses +alunos. + +Mostre a média com uma casa decimal. + + >>> calcular_baixinhos_com_mais_de_13_anos(('Renzo', 39, 162)) + Média de altura: 162.0 centímetros. + Não há nenhum aluno abaixo da média + >>> calcular_baixinhos_com_mais_de_13_anos(('Renzo', 39, 162), ('Priscila', 33, 158)) + Média de altura: 160.0 centímetros. + Existe(m) 1 aluno(s) com altura abaixo da média com mais de 13 anos: + 1. Priscila, com 158 centímetros e 33 ano(s) de idade + >>> calcular_baixinhos_com_mais_de_13_anos(('Renzo', 39, 162), ('Priscila', 33, 158), ('Gigante', 20, 210)) + Média de altura: 176.7 centímetros. + Existe(m) 2 aluno(s) com altura abaixo da média com mais de 13 anos: + 1. Renzo, com 162 centímetros e 39 ano(s) de idade + 2. Priscila, com 158 centímetros e 33 ano(s) de idade + >>> calcular_baixinhos_com_mais_de_13_anos( + ... ('Renzo', 39, 162), ('Priscila', 33, 158), ('Gigante', 20, 210), ('Criança', 7, 100) + ... ) + Média de altura: 157.5 centímetros. + Não há nenhum aluno abaixo da média + >>> calcular_baixinhos_com_mais_de_13_anos( + ... ('Renzo', 39, 162), ('Priscila', 33, 158), ('Gigante', 20, 210), + ... ('Criança', 7, 100), ("Shaquille O'Neal", 25, 216) + ... ) + Média de altura: 169.2 centímetros. + Existe(m) 2 aluno(s) com altura abaixo da média com mais de 13 anos: + 1. Renzo, com 162 centímetros e 39 ano(s) de idade + 2. Priscila, com 158 centímetros e 33 ano(s) de idade + +""" + + +def calcular_baixinhos_com_mais_de_13_anos(*alunos): + """Escreva aqui em baixo a sua solução""" + + diff --git a/secao_04_exercicios_lista/ex_13_media_de_temperaturas_anual.py b/secao_04_exercicios_lista/ex_13_media_de_temperaturas_anual.py new file mode 100644 index 000000000..4f9745ba5 --- /dev/null +++ b/secao_04_exercicios_lista/ex_13_media_de_temperaturas_anual.py @@ -0,0 +1,49 @@ +""" +Exercício 13 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Faça um programa que receba a temperatura média de cada mês do ano e armazene-as em uma lista. +Após isto, calcule e MOSTRE A MÉDIA ANUAL das temperaturas e MOSTRE TODAS AS TEMPERATURAS ACIMA DA MÉDIA ANUAL, +e em que mês elas ocorreram (mostrar o mês por extenso: 1 – Janeiro, 2 – Fevereiro, . . . ). + +-as temperaturas só serão dadas em inteiro +-todos os meses do ano serão passados à funçao, começando de janeiro e terminando em dezembro. + Todos seguidos de sua temperatura mensal + +(Funçoês recomendadas para estudo: + - .ljust() + - enumerate() + - sum() + - len() + + + >>> from secao_04_exercicios_lista import ex_13_media_de_temperaturas_anual + + >>> meses_vs_temperaturas = ['25', '33', '19', '16', '15', '20', '25', '29', '25', '27', '33', '30'] + >>> ex_13_media_de_temperaturas_anual.input = lambda k: meses_vs_temperaturas.pop() + >>> ex_13_media_de_temperaturas_anual.temperaturas_acima_da_media() + Média anual: 24.75 Graus + 1 - Janeiro: 30° + 2 - Fevereiro: 33° + 3 - Março: 27° + 4 - Abril: 25° + 5 - Maio: 29° + 6 - Junho: 25° + 11 - Novembro: 33° + 12 - Dezembro: 25° + >>> meses_vs_temperaturas = ['25', '33', '19', '16', '15', '20', '25', '29', '25', '27', '33', '35'] + >>> ex_13_media_de_temperaturas_anual.input = lambda k: meses_vs_temperaturas.pop() + >>> ex_13_media_de_temperaturas_anual.temperaturas_acima_da_media() + Média anual: 25.17 Graus + 1 - Janeiro: 35° + 2 - Fevereiro: 33° + 3 - Março: 27° + 5 - Maio: 29° + 11 - Novembro: 33° + +""" + + +def temperaturas_acima_da_media(): + """Escreva aqui sua solução: """ + diff --git a/secao_06_exercicios_strings/ex_01_comparador_de_strings.py b/secao_06_exercicios_strings/ex_01_comparador_de_strings.py index a9c5932cf..d984796a8 100644 --- a/secao_06_exercicios_strings/ex_01_comparador_de_strings.py +++ b/secao_06_exercicios_strings/ex_01_comparador_de_strings.py @@ -7,12 +7,6 @@ Compara duas strings -String 1: Brasil Hexa 2006 -String 2: Brasil! Hexa 2006! -Tamanho de "Brasil Hexa 2006": 16 caracteres -Tamanho de "Brasil! Hexa 2006!": 18 caracteres -As duas strings são de tamanhos diferentes. -As duas strings possuem conteúdo diferente. >>> comparar('Brasil Hexa 2006', 'Brasil! Hexa 2006!') String 1: Brasil Hexa 2006 @@ -35,6 +29,16 @@ Tamanho de "Hexa 2008": 9 caracteres As duas strings possuem tamanhos iguais. As duas strings possuem conteúdo diferentes. + As duas strings são de tamanhos diferentes. + As duas strings possuem conteúdo diferente. + >>> comparar('Igual', 'Igual') + String 1: Igual + String 2: Igual + Tamanho de "Igual": 5 caracteres + Tamanho de "Igual": 5 caracteres + As duas strings possuem mesmo tamanho. + As duas strings possuem conteúdo igual. + """ diff --git a/secao_06_exercicios_strings/ex_02_inversor_maisculo.py b/secao_06_exercicios_strings/ex_02_inversor_maisculo.py new file mode 100644 index 000000000..42a26c41e --- /dev/null +++ b/secao_06_exercicios_strings/ex_02_inversor_maisculo.py @@ -0,0 +1,23 @@ +""" +Exercício 02 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosComStrings + +Faça um programa que mostre o nome do usuário de trás para frente utilizando somente +letras maiúsculas. Dica: lembre−se que ao informar o nome o usuário pode digitar +letras maiúsculas ou minúsculas. + + + >>> inversor('lucca') + 'ACCUL' + >>> inversor('douglas') + 'SALGUOD' + >>> inversor('TaTIana') + 'ANAITAT' + >>> inversor('MARIa') + 'AIRAM' + +""" + + +def inversor(nome: str) -> str: + """ Escreva seu código aqui embaixo """ diff --git a/secao_06_exercicios_strings/ex_05_nome_vertical_escada_invertida.py b/secao_06_exercicios_strings/ex_05_nome_vertical_escada_invertida.py new file mode 100644 index 000000000..b8cb8feed --- /dev/null +++ b/secao_06_exercicios_strings/ex_05_nome_vertical_escada_invertida.py @@ -0,0 +1,37 @@ +""" +Exercício 05 da seção de strings da Python Brasil: +https://wiki.python.org.br/ExerciciosComStrings + +Nome na vertical em escada invertida. Altere o programa anterior de modo que a escada seja invertida. + + >>> inverter_escada('CAMARGUINHO') + CAMARGUINHO + CAMARGUINH + CAMARGUIN + CAMARGUI + CAMARGU + CAMARG + CAMAR + CAMA + CAM + CA + C + >>> inverter_escada('ENZO_PASCOAL') + ENZO_PASCOAL + ENZO_PASCOA + ENZO_PASCO + ENZO_PASC + ENZO_PAS + ENZO_PA + ENZO_P + ENZO_ + ENZO + ENZ + EN + E + +""" + + +def inverter_escada(nome:str): + """Escreva aqui em baixo a sua solução"""