Algumas funções não estão alterando os valores das variáveis como por exemplo
Por que, mesmo após eu trocar o valor da idade1 na função saudacao_idade a variável idade1 continua retornando 10?
Algumas funções não estão alterando os valores das variáveis como por exemplo
Por que, mesmo após eu trocar o valor da idade1 na função saudacao_idade a variável idade1 continua retornando 10?
Olá, Emmanuel, tudo bem?
Esse tipo de situação acontece porque as variáveis que são criadas ou alteradas dentro de uma função só existem dentro dela. Chamamos isso de variável local, ou seja, variáveis que só são utilizadas no local.
Como você tem uma variável com mesmo nome dentro e fora da função (idade1
), quando você chama idade1
em outra célula ela vai passar apenas o valor que está fora da função. É como se existissem 2 variáveis idade1
, em que uma delas é uma variável global (que pode ser chamada em qualquer lugar, inclusive dentro de uma função) e a outra é uma variável local (só existe dentro da função).
Caso quisesse o novo valor, o ideal seria retornar esse valor para uma variável que recebe a função que você deseja rodar (através do código return
).
Por exemplo:
idade = 10
def saudacao_idade():
idade = input("Quantos anos você tem? ")
idade = int(idade)
return idade
# Aqui retorna 10
idade
#Aqui retorna a idade que você criou
idade_nova = saudacao_idade()
idade_nova
Resultado:
Espero ter ajudado!
Forte abraço!