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

Conversor automático Python

Testei também um código diferente e acabei com outra dúvida.

numero1 = 2,5
numero2 = 2
print(numero1 * numero2)
print(type(numero1))

e o resultado foi:

(2, 5, 2, 5)
<class 'tuple'>

Ficou claro que ele repetiu os números 2 e 5 duas vezes sem erro de sintaxe.

Minha dúvida é a forma como o Python interpretou essa variável e por que esse layout e os parênteses (2, 5, 2, 5)?

Digitando com o separador correto, séria assim:

numero1 = 2.5
numero2 = 2
print(numero1 * numero2)
print(type(numero1))

Resultado:

5.0
<class 'float'>

PS: Eu estava testando os separadores dos números decimais.

1 resposta
solução!

Oioiii Claucio, tudo bem com você?

Quando queremos criar uma variável de números reais nós utilizamos o ponto (.) para separar a parte inteira da parte real. O que acontece é que em Python nós temos alguns tipos de contêineres de dados, como listas, tuplas, dicionários e conjuntos, e esses contêineres são definidos por uma sintaxe específica.

No caso da tupla (em inglês, tuple), é um contêiner que armazena um conjunto de dados que não podem ser alterados depois que criados, em que seus elementos são definidos entre parênteses (). Além disso, para você criar uma tupla, é preciso você seguir uma das sintaxes de criação dela, que são:

nome_da_tupla = (elemento1,elemento2,...,elementoN) #Modo 01
nome_da_tupla = elemento1,elemento2,...,elementoN #Modo 02
nome_da_tupla = tuple( (elemento1,elemento2,...,elementoN)) #Modo 03

O Modo 01 apresenta a declaração utilizando parênteses de abertura e fechamento, em que dentro os elementos são definidos e separados por vírgula (,). O Modo 02 é conhecido como empacotamento de tupla, e a criação da tupla é feita sem os parênteses. E o Modo 03 é feito utilizando a função tuple(), em que os elementos são definidos dentro dos parênteses. Para os três casos, os valores dos elementos são armazenados entre parênteses.

Desse modo, quando você foi criar sua variável numero1 e você substituiu o ponto por vírgula, ao invés de criar uma variável float, você utilizou a sintaxe de tupla Modo 02 e criou uma tupla. Por isso quando você fez a multiplicação por 2 através da variável numero2, o python entendeu que você queria duplicar os elementos de sua tupla, e não multiplicar os dois números.

Assim, caso você queira utilizar números decimais, criando um float, você precisa utilizar o ponto e não a vírgula, para que não seja criada uma tupla :)

Caso tenha interesse de conhecer um pouco mais sobre as tuplas te recomendo artigo Conhecendo as tuplas no Python e o curso Python Collections parte 1: listas e tuplas. Se deseja se aprofundar ainda mais sobre a Linguagem Python, recomendo a formação Python e orientação a objetos na alura!

Em caso de dúvidas, me coloco à disposição.

Grande abraço e bons estudos!

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