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

Conversão de STR para INT somente no início do código?

O que eu não consegui entender é que num primeiro momento, se faz necessário converter os dados de str para int, para que o sistema verifique se é maior igual ou menor que 18.. mas logo em seguida, utilizando uma lista de idades, essa conversão não é requerida. Existe alguma diferença ou entendi errado?

1 resposta
solução!

Oi, Matheus! Tudo bem com você?

Na aula Conversão de tipos é utilizado um código no qual a variável idade recebe o valor da função input na qual, coleta o valor inserido e o retorna como um dado do tipo string, como é feita uma comparação numérica na função verifica_se_pode_dirigir_sem_parametro foi preciso transformar a variável em tipo inteira. Você pode verificar os tipos de variável colocando um print depois de cada transformação:

def verifica_se_pode_dirigir_sem_parametro():
    idade = input('Qual sua idade')
    print('tipo da variável idade após input: ',type(idade)) 
    idade = int(idade)
    print('tipo da variável idade transformação: ',type(idade))
   ...

Já no caso da aula Laços e loops a variável idades não recebeu um valor da função input, ela foi criada pelo instrutor fazendo a declaração de valores numéricos. Como os valores foram definidos como 18, 22, 15 e 50, os valores atribuídos fora do tipo inteiro, não sendo necessário fazer o ajuste de valores.

Para você verificar o tipo numérico dos dados em idades, você pode executar o seguinte código:

idades = [18, 22, 15, 50 ]
print('1° elemento: ',type(idades[0]),'\n2° elemento: ',type(idades[1]),'\n3° elemento: ',type(idades[2]),'\n4° elemento: ',type(idades[3]))

Espero ter te ajudado! Se a dúvida persistir não hesite em me comunicar.

Bons estudos!