– Mais sobre variáveis – Ordem de execução dos programas
No Python, a ordem das suas linhas de código impactam no resultado.
O que isso quer dizer? O Python sempre lerá o seu programa de cima para baixo.
print(nome)
nome='joão'
-------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-f9edefc78603> in <module>
----> 1 print(nome)
2 nome='joão'
NameError: name 'nome' is not defined
Vamos dar uma olhada no exemplo ao lado. Consegue entender esse erro? Não? Tranquilo! A gente te explica! O erro, como você pode ver na última linha, se
refere à variável ‘nome’ que não está definida (not defined). Isso significa que o que está sendo executado não foi definido anteriormente.
Você deve estar se perguntando:
“-Mas está definido sim! Nome= João!”
Sim, você tem razão sobre isso, mas vamos olhar mais uma vez a mensagem de erro. A seta indica que o erro ocorreu na linha 1 onde a variável nome é “impressa” pela função print. Com essa dica da mensagem de erro, fica mais simples de entender que na verdade o erro é a sequência do nosso código.
Imagine que você é o computador e não sabe o que virá na linha 2. Ao ler print(nome) que nome você “printaria”? Nenhum certo? Você ainda não tem essa informação.
Ok. Como corrigir?
Alterando a ordem do nosso código. Vamos dar uma olhada no exemplo ao lado já corrigido.
nome='joão'
print(nome)
___________
João
Vamos fazer o mesmo exercício. Leia como o computador leria... Variável nome recebe João. Imprimir o valor da variável nome
Como nome = João
Resultado João
Portanto, sempre tenha atenção com a sequência do seu código!
Vamos ver um exemplo um parecido, mas envolvendo algumas operações matemáticas:
faturamento = 100
custo = 80
lucro = (faturamento - custo)
print (lucro)
custo = 50
print(lucro)
_________
20
20
Apesar de termos “printado” duas vezes o lucro usando custos diferentes, o resultado foi o mesmo.
Em teoria teríamos
Faturamento(100) – Custo(80) = 20
Faturamento (100) – Custo(50) = 50
O erro no código, neste caso, ocorreu pois a variável lucro manteve o cálculo inicial realizado na linha 3 do nosso código. Mesmo fornecendo um novo custo, nesse caso 50, o cálculo do novo valor do lucro não foi realizado. Logo, a variável manteve seu valor original
Para resolver esse problema, temos como uma solução bem simples, o exemplo ao lado:
Inserindo uma nova linha para cálculo do lucro, podemos calcular o novo lucro considerando o novo custo fornecido.
Assim,
Lucro = Faturamento (100) – Custo (50)
– Tipos de variáveis
Até o momento, temos tratado as variáveis como iguais, mas na realidade, no Python cada variável possui um tipo. Para saber qual o tipo de uma variável, usamos a função Type() como nos exemplos ao lado.
• INT → Números inteiros (sem casa decimal)
• FLOAT → Basicamente são números com casas decimais. Lembrando que no Python a
casa decimal é representada pelo “.” (ponto) e não pela “,” (vírgula).
• STR → Tipo string. Basicamente texto. Um ponto de atenção é que números entre aspas são considerados strings.
• BOOL → Chamadas booleanas. São variáveis que só possuem 2 valores possíveis:
TRUE(Verdadeiro) ou FALSE(Falso)
Ou seja, todos os tipos de variáveis que vimos anteriormente possuem métodos específicos para cada um daqueles objetos.
Para descobrir quais são esses métodos podemos utilizar a função dir( TIPO DA VARIÁVEL) conforme a figura ao lado usando o tipo STR.
dir(str)
Não é necessário guardar ou decorar todos os métodos possíveis, mas é importante entender que esses métodos são ações que podem ser executadas nos objetos criados no programa.
– Misturando tipos de variáveis
Quando trabalhamos com variáveis de tipos distintos, podemos ter erros como nesse caso. Se analisarmos o erro, conseguimos entender que só é possível concatenar variáveis str com outras variáveis str.
No nosso código, estamos tentando concatenar o texto ‘ O faturamento da loja foi’ que é uma string com faturamento que é uma variável int, já que foi atribuído na linha anterior o valor 1000.
faturamento = 1000
print('o faturamento da loja foi'+faturamento)
--------------------------------------
TypeError: can only concatenate str (not "int") to str
Para tratarmos esse erro e conseguirmos ter apenas variáveis tipo str na hora de concatenar, vamos usar a função str() como no print ao lado. Assim, o Python lerá o valor atribuído à variável faturamento e converterá esse valor em uma string.
Uma dúvida comum é:
“Mas essa conversão é pontual ou é definitiva?” Vamos dar uma olhada no type da variável faturamento nesse segundo print:
faturamento = 1000
print('o faturamento da loja foi ' + str(faturamento)
____________
O faturamento da loja foi 1000
type(faturamento)
______________
int
Perceba que apesar de termos convertido a variável faturamento, a mesma não foi alterada em definitivo, apenas na linha onde foi feita a conversão.
Outra forma de trabalharmos com mais de um tipo de variável é o método .format. Esse método, além de mais usual, é mais simples pois não é necessário especificar para qual tipo de variável será alterada.
Vamos entender como funciona com o primeiro exemplo:
faturamento = 1000
custo = 500
print('O faturamento da loja foi {}'.format(faturamento))
____________________
O faturamento da loja foi 1000
Perceba que ao invés de usarmos str(faturamento) como no exemplo anterior, nós usamos apenas duas chaves {} e ao fim do texto usamos o método .format(faturamento).
O python ao ler as chaves {} entenderá que o valor de uma varíavel precisa ser incluída ali. O Python buscará esse valor dentro dos argumentos do método format. Nesse caso, faturamento.
Mas se ao invés de uma variável forem mais variáveis? Vamos olhar o exemplo 2:
faturamento = 1000
custo = 500
print('O faturamento da loja foi {} e o custo {}'.format(faturamento))
____________________
O faturamento da loja foi 1000 e o custo 500
Nesse caso temos dois sinais “{}” , o que significa que serão necessários 2 valores. Olhando os valores dentro do .format, podemos ver que as variáveis faturamento e custo são esses valores.
A Ordem faz diferença?
SIM! Vamos dar uma olhada no último caso: Aqui, ao invés de format(faturamento,custo),
invertemos a ordem dessas variáveis. Logo format(custo,faturamento). Perceba no output que os valores estão invertidos. Portanto atenção, pois a ordem faz diferença!
Nenhum comentário:
Postar um comentário