PERGUNTA

Como fazer isso em Python?

foto de
Igor Munhoz


def soma():
    quantidade = input('Informe a quantidade de números a serem somados: ')
    soma = 0
    for i in range(int(quantidade)):
        numero = float(input('Numero: '))
        soma = float(numero) + soma
    print(soma)
soma()

Fiz dessa forma, porém quero adicionar este código.


if numero.find('.') != -1:
		numeros.append(float(numero))
	else:
		numeros.append(int(numero))

Não necessariamente assim, mas quero que quando eu digitar os números, caso todos sejam int, ele retorne um somatória int, sem o .0 do ponto flutuante do float.


Alguém poderia me ajudar?

Respostas 2

Consegue ajudar? A comunidade agradece

foto do perfil Phillip Parente Phillip Parente

Olá, 

Acho que o melhor para esta solução seria utilizar a formatação para tratar a apresentação. Neste caso ficaria assim ( embora eu não ache que seja muito elegante, mas para fins de estudo, ok):

def soma():
    quantidade = input('Informe a quantidade de números a serem somados: ')
    soma = 0
    for i in range(int(quantidade)):
        numero = float(input('Numero: '))
        soma = float(numero) + soma
    # Aqui a formatacao nova para exibir do jeito que procura.
    print(('%f' % soma).rstrip('0').rstrip('.'))
soma()



foto do perfil Igor Munhoz Igor Munhoz

Eu consegui fazer depois, mas foi bem diferente... Não conhecia essas funções

def is_float(number):
    divided = str(number).split('.')
    if len(divided) < 2:
        return False
    return int(divided[1]) != 0

def soma():
    quantidade = input('Informe a quantidade de números a serem somados: ')
    soma = 0
    for i in range(int(quantidade)):
        numero = input('Numero: ')
        if numero.find('.') != -1:
            soma = float(numero) + soma
        else:
            soma = int(numero) + soma
    if is_float(soma):
        print(float(soma))
    else:
        print(int(soma))

soma()