python: Faça uma função que receba dois números positivos por parâmetro e retorne a soma dos n números inteiros existentes entre eles
Respostas
A função que será apresentada a seguir, aceita apenas valores numéricos positivos (inteiros ou fracionários). Como nada foi especificado no enunciado, optou-se por retornar o valor 0 no caso de serem apresentados valores negativos à função.
Vamos ver como fica a função e, posteriormente, deixo mais alguns comentários sobre o código.
[Python 3.8]
Comentários
--> Note que utilizamos duas funções da biblioteca math, a função floor() "força" o arredondamento de um número para baixo, já ceil(), "força" o arredondamento para cima. Essas funções são utilizadas para que possamos, dentro da solução encontrada, utilizar a função range() que apenas aceita valores inteiros.
--> A computação dos inteiros utiliza um laço for para iterar na sequencia de valores inteiros criada pela função range(), sendo que a variável 'soma' é incrementada com esses inteiros.
--> Observe que, nesta resolução, a função garante a possibilidade de apresentarmos os parâmetros em ordem crescente ou decrescente, ou seja, não importa a ordem na qual passamos os limites do intervalo.
Fazemos isso com auxílio de uma estrutura condicional, caso o valor guardado em "a" seja maior que o guardado em "b", efetuamos a comutação desses valores, assim o que estava em "a" vai para "b" e vice-versa.
Para testar a função, abaixo seguem algumas sugestões:
print(soma_int(0, 5))
print(soma_int(7, 2))
print(soma_int(3, 3))
print(soma_int(1.77, 8.01))
print(soma_int(11.99, 12.01))
print(soma_int(-1, 7))
print(soma_int(-5, -9))