Faça um programa em Python para o cálculo do desconto do Imposto de Renda (IR).
A tabela atual do IR é a seguinte:
- Há dedução no IR de R$ 179,71 por dependente, caso haja.
- Também é possível deduzir despesas com previdência, pensão, entre outros.
- Uma função deve receber como parâmetros o salário líquido, caso tenha dependentes, o número de dependentes, e caso haja deduções, o valor das deduções
- Se o número de dependentes e/ou o valor das deduções não for informado, a função assume o valor 0 (zero) para esses parâmetros.
- A função deve devolver o valor do desconto do IR
Exemplo:
- Salário Líquido: R$ 4500,00
- Dependentes: 1
- Deduções: R$ 320,00
- Base de cálculo: R$ 4500,00 – R$ 179,71 – R$ 320,00 = R$ 4.000,29
- Alíquota de 22,5%. Desconto de: R$ 900,07
- Utilize modularização para separar as funções e procedimentos do código principal do programa.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Código:
Só que na hora de compilar, o print da def condicoes(calculo) não aparece quando compilo.
Será que tem alguma coisa relacionada a variável cálculo que estou usando de forma errada nessa função?
salarioLiquido = float(input('Entre com o salário líquido que deseja calcular o desconto do Imposto de Renda: '))
dep = int(input('Entre com o número de dependentes: '))
deducoes = float(input('Entre com o valor total das deduções: '))
def dependentes(dep):
if dep == 1:
dep = 179.71
elif dep == 2:
dep = 179.71 * 2
elif dep == 3:
dep = 179.71 * 3
elif dep == 4:
dep = 179.71 * 4
elif dep == 5:
dep = 179.71 * 5
elif dep == 6:
dep = 179.71 * 6
elif dep == 7:
dep = 179.71 * 7
elif dep == 8:
dep = 179.71 * 8
elif dep == 9:
dep = 179.71 * 9
elif dep == 10:
dep = 179.71 * 10
return dep
dependentes(dep)
def subtracao(deducoes):
calculo = salarioLiquido - dependentes(dep) - deducoes
#print('\n--------------------Cálculo-------------------')
#print('- O salário junto com as deduções é: {}'.format(calculo))
return calculo
subtracao(deducoes)
def condicoes(calculo):
if calculo <= 1787.77:
print('Você está isento do Imposto de Renda!')
elif calculo >= 1787.78 and calculo <= 2679.29:
calculo = (calculo * 7.5) / 100
print('Alíquota de 7,5%. Desconto de:{}'.format(calculo))
elif calculo >= 2678.30 and 3572.43:
calculo = (calculo * 15) / 100
print('Alíquota de 15,0%. Desconto de:{}'.format(calculo))
elif calculo >= 3572.44 and calculo <= 4463.81:
calculo = (calculo * 22.5) / 100
print('Alíquota de 22,5%. Desconto de:{}'.format(calculo))
elif calculo > 4463.81:
calculo = (calculo * 27.5) / 100
print('Alíquota de 27,5%. Desconto de:{}'.format(calculo))
subtracao(deducoes)
[...] Só que na hora de compilar, o print da def condicoes(calculo) não aparece quando compilo.
Será que tem alguma coisa relacionada a variável cálculo que estou usando de forma errada nessa função?
[...]
-- []'s Junior Polegato
Assim, com a variável calculo da função subtracao, eu veria em qual faixa ela entraria pra fazer o calculo na função condicoes.