Para a prova de nível médio do Bacen faltam

domingo, 18 de fevereiro de 2024

Vigésimo segundo tijolo - reduzindo fórmulas de comparação

 

Minha forma de comparar três números:

import pandas as pd numero_01 = float(input('Digite o primeiro valor: ')) numero_02 = float(input('Digite o segundo valor: ')) numero_03 = float(input('Digite o terceiro valor: ')) print(f"Os números digitados foram: {numero_01}, {numero_02}, {numero_03}") if numero_01 > numero_02 and numero_01 > numero_03: print("O primeiro valor é maior que os demais.") elif numero_02 > numero_01 and numero_02 > numero_03: print("O segundo valor é maior que os demais.") elif numero_03 > numero_01 and numero_03 > numero_02: print("O terceiro valor é maior que os demais.") else: print("Os números são iguais ou há pelo menos dois números iguais.") if numero_01 < numero_02 and numero_01 < numero_03: print("O primeiro valor é menor que os demais.") elif numero_02 < numero_01 and numero_02 < numero_03: print("O segundo valor é menor que os demais.") elif numero_03 < numero_01 and numero_03 < numero_02: print("O terceiro valor é menor que os demais.") else: print("Os números são iguais ou há pelo menos dois números iguais.")



Forma do chatgpt reduzir este script:

O script é

def compara_valores(nome, a, b, c):

maior = max(a, b, c) menor = min(a, b, c) print(f"{nome} é maior que os demais." if a == maior else f"{nome} é menor que os demais." if a == menor else "Os números são iguais ou há pelo menos dois números iguais.") numeros = [float(input(f'Digite o {i+1}º valor: ')) for i in range(3)] print(f"Os números digitados foram: {', '.join(map(str, numeros))}") compara_valores("O primeiro valor", *numeros) compara_valores("O segundo valor", numeros[1], numeros[0], numeros[2]) compara_valores("O terceiro valor", *reversed(numeros))

Ao rodarmos o código veja o que aparece.



Veja a explicação do gpt




```python

numeros = [float(input(f'Digite o {i+1}º valor: ')) for i in range(3)]

```

Esta linha de código cria uma lista chamada `numeros` usando uma compreensão de lista. A compreensão de lista é uma construção concisa e poderosa em Python. Neste caso, ela é usada para solicitar ao usuário a entrada de três valores (números) e convertê-los para ponto flutuante (usando `float`). O f-string (`f'Digite o {i+1}º valor: '`) é usado para exibir uma mensagem personalizada solicitando cada valor.

```python

print(f"Os números digitados foram: {', '.join(map(str, numeros))}")

```

Aqui, é usada outra f-string para imprimir os números digitados. A função `join` é usada para concatenar os números da lista em uma string, separando-os por vírgulas.

```python

compara_valores("O primeiro valor", *numeros)

compara_valores("O segundo valor", numeros[1], numeros[0], numeros[2])

compara_valores("O terceiro valor", *reversed(numeros))

```

Essas linhas chamam a função `compara_valores` três vezes, cada vez passando uma mensagem e três valores para serem comparados. O operador `*` é usado para desempacotar a lista de números e passar os valores individualmente como argumentos para a função.

```python

def compara_valores(nome, a, b, c):

    maior = max(a, b, c)

    menor = min(a, b, c)

    resultado = (f"{nome} é maior que os demais." if a == maior else

                 f"{nome} é menor que os demais." if a == menor else

                 "Os números são iguais ou há pelo menos dois números iguais.")

    print(resultado)

```

Aqui está a definição da função `compara_valores`. Recebe um nome e três valores (a, b, c). Usa as funções `max` e `min` para determinar o maior e o menor valor. Em seguida, utiliza uma expressão condicional (ternária) para construir uma mensagem com base na comparação do valor `a` com o maior e o menor valor. A mensagem resultante é armazenada em `resultado` e impressa. A função compara os valores e imprime uma mensagem indicando como o valor `a` se compara aos demais.


Nenhum comentário:

Postar um comentário