Nesse tópico https://cursos.alura.com.br/forum/topico-boiei-nas-funcoes-151213 há a seguinte explicação para o código a seguir: Troquei o nome valor por calculo no escopo B. E mesmo assim o código funciona. Nós não passamos O NOME DAS VARIAVEIS como parametro, mas sim os "O QUE ELAS ESTÃO ARMAZENANDO". Está em aspas pq não é bem asism, mas podemos nos abstrair desse conceito para essa resposta. Se tive curiosidade, busque por "passagem por valor ou referencia"
#escopo A
def programa():
numero_1 = 2
numero_2 = 4
valor = calculo_complexo(numero_1, numero_2)
print(valor)
#fim do escopo A
#escopo B
def calculo_complexo(parametro_1, parametro_2):
calculo = (parametro_1 * parametro_2)/(parametro_2 - parametro_1)
return calculo
#fim do escopo B
programa()COPIAR CÓDIGO
Se é isso que acontece, como a função vai saber a qual parâmetro se refere? Ele mudou todos os nomes, parametros, variaveis internas? Então, quando a função é chamada, não entendi como ela vai saber se o parametro_2 na função B se refere ao numero_2 na função A.