Que bom que pude ajudar um pouco. Tentando ajudar um poquito mais vou explicar de uma outra maneira.
Acho que estamos confundindo parâmetros com variáveis
Parâmetro é o modo de eu falar para uma função que ele vai receber um ou mais valores, e quais valores ele vai devolver para mim. Quando falo parâmetros em python eu faço um link direto com funções
No primeiro exemplo do Alan Cordeiro ele fala que se não usar o parâmetro idade o código roda do mesmo modo, mas não, sem o parâmetro idade a função não tem como receber o valor para comparar:
idade = input('Qual sua idade? ')
idade = int(idade)
def verifica_permissão_para_dirigir():
if idade >= 18:
print("Pode dirigir")
else:
print('Não pode dirigir')
verifica_permissão_para_dirigir(idade)
Veja que eu tirei o parâmetro idade da linha "def verificapermissãoparadirigir():" . Se você tentar rodar o código, a variável idade (que está dentro da função) não recebe nenhum valor porque a função não entrou com nenhum valor.
Para tentar tornar mais claro pense na estrutura básica da função como ENTRADA >> PROCESSAMENTO >> SAÍDA, e a sintaxe (que é o modo de escrever a função) assim:
def nome_da_funcao(local onde vc fala para a função quais os dados que ela vai usar nessa função):
[local onde o processamento da função ocorre]
[nessas linhas vc faz o que quiser com os valores recebidos nos parêntesis da linha def...]
return linha_q_vc_fala_para_a_função_o_que_ela_deve_retornar
Agora olhe o código abaixo:
def verifica_permissão_para_dirigir(idade):
if idade >= 18:
print("Pode dirigir")
else:
print('Não pode dirigir')
verifica_permissão_para_dirigir(22)
Nesse código eu eliminei a variável idade do código fora da função, ou seja, ao invés de usar uma variável, eu passei um valor direto para a função, nesse caso o meu 22 é o valor que eu passei no parâmetro da função, esse código sim vai funcionar sem a variável.
Agora para entender um pouco mais da importância das variáveis, basta analisar a funcionalidade do código acima. Se eu quiser colocar outro valor sem ser o 22, como eu faria?
Lembre-se que na maioria massiva das vezes o código não é escrito para o programador usar, mas sim o usuário, então o programador não tem noção do valor a ser recebido, na verdade, os código receberão vários valores ao longo do tempo, por isso usamos variáveis para representar os valores que ainda estão por vir.