Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolução: aplicando desconto

value = float(input('Digite o valor do produto: '))
discount = float(input('Digite a porcentagem do cupom de desconto: '))

def aplly_discount():

calc = value * (discount / 100)
discounted_value = value - calc


print(f'O valor original: {value}')
print(f'Cupom de % {discount}')

print(f'O mesmo valor com desconto aplicado: {discounted_value}')

aplly_discount()
Minha resolução, fiquei com duvida em algo, quando usei a variavel 'discount' no lugar da 'calc' ele me dizia que a primeira variavel citada não tinha valor algum atribuido, porem, caso eu colocasse o input dentro da função, ele executava normalmente o código, porque disso?

1 resposta
solução!

Oi Matheus! Como vai?

Quando você declara uma variável fora de uma função, como value e discount no seu código, essas variáveis são consideradas globais e podem ser acessadas dentro da função aplly_discount(). No entanto, se você tentar definir uma variável dentro de uma função e usá-la fora dessa função, o Python não a reconhecerá, pois ela está fora do escopo.

No seu caso, quando você coloca o input() dentro da função, a variável discount é definida dentro do escopo da função, e por isso ela é reconhecida e utilizada corretamente. Fora da função, discount não teria um valor atribuído, a menos que fosse definido globalmente ou passado como argumento para a função.

Para resolver esse problema, você pode passar value e discount como argumentos para a função aplly_discount(). Veja como ficaria:

def aplly_discount(value, discount):
    calc = value * (discount / 100)
    discounted_value = value - calc
    
    print(f'O valor original: {value}')
    print(f'Cupom de % {discount}')
    print(f'O mesmo valor com desconto aplicado: {discounted_value}')

value = float(input('Digite o valor do produto: '))
discount = float(input('Digite a porcentagem do cupom de desconto: '))

aplly_discount(value, discount)

Dessa forma, value e discount são passados para a função como argumentos, e você não terá problemas com escopo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.