DEV Community

Joao Carlos Sousa do Vale
Joao Carlos Sousa do Vale

Posted on • Updated on

Tipos de Dados, Variáveis e Interagindo com o Usuário #02

Introdução

Neste tópico iremos aprender as primeiras instruções na linguagem Python, como escrever na tela do computador e ler informações do teclado.

Também é abordado como utilizar variáveis para guardar os dados e quais são os tipos de dados básicos (primitivos) que podemos armazenar com simples instruções.

Usando o shell

A linguagem Python acompanha um ambiente que você pode executar instruções e acompanhar a sua execução e resultado em tempo real, denominado shell.

Existem diversas formas de acessá-la, a foma mais simples é usando o terminal da sua máquina e digitando o comando “python” (não esqueça de dar “enter”).

descricao 1

Execute algumas expressões na shell, como 2 + 2. Uma expressão consiste de valores (número 2) e operadores (como a adição +) que podem ser calculados para um valor. Um valor sem operadores também é considerado uma expressão.

descricao 2

Para sair do shell, basta digitar exit( ) e dar enter.

descricao 3

A linguagem Python fornece algumas operações predefinidas, como os operadores matemáticos.

Operadores matemáticos

A linguagem Python possui os seguintes operadores matemáticos:

Operador Operação Exemplo Resultado
** Exponenciação 2 ** 4 16
% Resto da divisão 20 % 7 6
// Divisão inteira 20 // 7 2
/ Divisão 20 / 7 2.857142
* Multiplicação 4 * 6 24
- Subtração 7 - 3 4
+ Adição 7 + 3 10

Três operadores merecem a atenção para os novos programadores: o de exponenciação (**), o resto da divisão (%) e a divisão inteira (//).

A exponenciação calcula a base elevada à potência do expoente, por exemplo 2 ** 4 = 24 = 2 * 2 * 2 * 2.

O resto da divisão é literalmente o resto da divisão entre dois números, por exemplo, 20 % 7 = 6, uma vez que 20 dividido por 7 é 2, e 20 - 2 * 7 é igual a 6.

Já a divisão inteira retorna a parte inteira quando a divisão não é exata, por exemplo 20 // 7 = 2.

Experimente alguns operadores matemáticos no shell.

>>> 2 + 3 * 6
20
>>> (2 + 3) * 6
30
>>> 48565878 * 578453
28093077826734
>>> 2 ** 8
256
>>> 23 / 7
3.2857142857142856
>>> 23 // 7
3
>>> 23 % 7
2
>>> 2 + 2
4
>>> (5 - 1) * ((7 + 1) / (3 - 1))
16.0
Enter fullscreen mode Exit fullscreen mode

A ordem de precedência entre os operadores é semelhante aos matemáticos, a multiplicação tem mais prioridade de execução do que a adição, por exemplo. Da mesma forma, você pode alterar a ordem de precedência através da utilização de parênteses.

Tipos de Dados

Todo valor que utilizamos em um programa, pertence a um tipo de dado. A linguagem Python possui como tipos de dados mais comuns: inteiros, ponto flutuante, string, booleanos. Inteiros representam os números que não possuem casas decimais, os de ponto flutuante são os números reais ou que possuem casas decimais. Já a string é uma sequência de caracteres ou representam texto.

Tipo de Dado Exemplos
Inteiro -2, -1, 0, 1, 2, 3, 4, 5
Ponto flutuante -1.25, -1.0, -0.5, 0.0, 0.5, 1.0, 1.25
String 'a', 'aa', 'aaa', 'Ola!', '11 dias de aula'
boolean True, False.

Observe que os valores string devem estar entre aspas simples (‘) ou duplas (“) e o tipo de dado boolean somente pode assumir o valor _True _ (valor verdade) ou o valor False (valor falso). Fique atento que o primeiro caracter é maiúsculo.

Concatenação de string

O operador de adição, além de somar números, também é utilizado para “juntar” ou concatenar strings.

>>> 'primeiro' + ' segundo nome'
'primeiro segundo nome'
>>> 'tenho ' + ' 15 anos'
'tenho  15 anos'
Enter fullscreen mode Exit fullscreen mode

Replicação de string

Com o operador de multiplicação, pode-se replicar uma string.

>>> 'seis ' * 6
'seis seis seis seis seis seis '
>>> 6 * 'seis '
'seis seis seis seis seis seis '
Enter fullscreen mode Exit fullscreen mode

Armazenamento de Dados

Os dados usados por um programa de computador podem ser armazenados e acessados, a princípio, da memória principal ou memória RAM (Random Access Memory - memória de acesso aleatório) e do disco rígido. Neste útimo caso, os dados devem estar armazenados em algum arquivo.

A velocidade de acesso de uma informação armazenada na memória RAM é superior ao armazenado em discos rígidos. Para fins de comparação, se um acesso a memória demorassem na escala de segundos, o acesso a um disco SSD (Solid State Drives - discos de estado sólido) levaria semanas e em um disco rígido mecânico, de meses a um ano!

Em compensação os dados armazenados na memória RAM são voláteis, se o seu computador for desligado ou reiniciado, eles serão perdidos. Já em discos rígidos, estes dados ficarão armazenados permanentemente, até que você os decida apagar.

Além disso, a quantidade de memória RAM é bem inferior que a quantidade de espaço de um disco. Sendo o preço do espaço de armazenamento da memória RAM bem superior ao preço de armazenamento de um disco rígido. Por exemplo, é comum os computadores pessoais possuírem terabytes (TB) de armazenamento em disco e gigabytes (GB) de memória RAM, 1 TB = 1.000 GB.

Variável

Uma variável é um local na memória principal (RAM) para a escrita e leitura de valores, identificado por um nome.

Criamos variáveis em um programa para facilitar o armazenamento de valores que poderão ser utilizados em outras instruções. O nome de uma variável não pode ser alterado, mas o seu valor sim(veremos que também podemos deixá-la imutável).

As linguagens de programação podem ser tipadas ou não tipadas. Uma linguagem é tipada quando é obrigado declarar o nome e o tipo de dados que podem ser armazenados na variável. Já as linguagens não tipadas, pode-se armazenar o valor em uma variável sem declarar o tipo. A linguagem **Python não é tipada.

Atribuição (=)

O operador de atribuição, responsável para atribuir um valor à variável é o = (símbolo de igualdade).

Veja o exemplo baixo:

>>> message = 'Ola, meu primeiro programa'
>>> print(message)
Ola, meu primeiro programa
Enter fullscreen mode Exit fullscreen mode

A variável com nome message foi definida e o valor “Ola, meu primeiro programa” foi atribuído a ela. Podemos então usar o nome da variável para acessar o valor armazenado, como na linha print (message).

>>> message = 'Ola, meu primeiro programa'
>>> my_age = 30
>>> my_salary = 150.50
>>> is_Old = False
>>> message
'Ola, meu primeiro programa'
>>> my_age
30
>>> my_salary
150.5
>>> is_Old
False
Enter fullscreen mode Exit fullscreen mode
REGRAS PARA NOMES DE VARIÁVEIS
  1. O primeiro caractere não pode ser um número;
  2. Os outros caracteres podem ser letras, números, ou underscore (‘_’);
  3. As letras em maiúsculo e minúsculo tornam os nomes diferentes, ou seja, variávei VALOR é diferente de valor ou Valor. Ou seja, as variáveis são CASE-SENSITIVE.

Você pode alterar livremente o valor de uma variável depois que ela foi inicializada, teste alguns exemplos.

>>> ano_bissexto = 2016
>>> ano_bissexto
2016
>>> ano_bissexto = 2020
>>> ano_bissexto
2020
Enter fullscreen mode Exit fullscreen mode

E criar expressões utilizando somente variáveis.

>>> valor_produto = 350.50
>>> desconto = 0.15
>>> valor_desconto = valor_produto * desconto
>>> valor_desconto
52.574999999999996

>>> sobrenome = 'Silva'
>>> sobrenome = sobrenome + ' Sousa'
>>> sobrenome
'Silva Sousa'
Enter fullscreen mode Exit fullscreen mode

Solicitando entrada do usuário

A partir de agora vamos escrever programas mais elaborados do que o simples cálculo de variáveis a análise de expressões usando o shell.

Escrevendo o código fonte

Utilizando um editor de texto ou alguma IDE como o Visual Studio Code, digite o seguinte conteúdo, explicaremos em breve o seu conteúdo:

#Programa para ler e imprimir nome do usuario
print('Digite seu nome:')
name = input()
print('Bem vindo ' + name)
Enter fullscreen mode Exit fullscreen mode

O código fonte de programas Python deve possuir a extensão .py, então salve o arquivo com o nome nomeUsuario.py em alguma pasta no seu computador. Mas o que é o código fonte?

Código fonte é o nome do arquivo que contém as instruções ou o algoritmo a ser executado pela máquina, escrito em instruções ou comandos da linguagem de programação utilizada.

Executando o programa

Por ser uma linguagem interpretada, o próximo passo é executarmos o programa que acabamos de escrever com o interpretador Python.

Se você estiver utilizando uma IDE, basta executar pelo próprio ambiente, caso contrário, acesse o terminal da sua máquina e navegue até a pasta onde você salvou seu arquivo. Finalmente digite “python nomeUsuario.py” e interaja com o seu primeiro programa com interação com o usuário.

descricao 1

Ele é um programa bem simples que solicita que você digite seu nome e depois imprime a mensagem de boas vindas.

Entendendo o programa

#Programa para ler e imprimir nome do usuario
print('Digite seu nome:')
name = input()
print('Bem vindo ' + name)
Enter fullscreen mode Exit fullscreen mode

Na linha 01, temos um comentário. Toda linha que se inicia com o hashcode (#) é ignorado pelo Python. Isso significa que o desenvolvedor pode escrever livremente alguma informação sobre o código. O uso de comentários é importante para documentar o algoritmo, geralmente descrevendo a sua funcionalidade. Linhas em branco também são ignoradas pela linguagem.

Na linha 02, estamos utilizando a função print, responsável por imprimir na tela o texto localizado dentro dos parênteses.

Em Python, uma função é reconhecida pela presença dos parênteses, ela possui um nome e é seguida por parênteses que podem ou não receber ou conter algum valor. Isso vai depender da função que você está utilizando. Logo, se você quer usar o print( ) para imprimir algo na tela, você deverá passar o valor a ser impresso dentro dos parênteses.

Na linha 03, temos outra função: input( ) e o seu valor é atribuído à variável name. A função input( ) é responsável por ler informações do teclado, até o usuário digitar enter e capturar o valor digitado como uma string. Desta forma a variável name é do tipo string.

Já na linha 04, estamos novamente invocando a função print( ) para imprimir na tela a mensagem Bem vindo concatenado com o valor armazenado na variável name.

Convertendo tipos de dados

Função int( ), str( ), float ( )

Se tivéssemos que alterar o programa de boas vindas ao usuário, para imprimir além do nome, solicitar a idade do usuário e calcular a idade dele 15 anos depois?

Uma primeira tentativa, poderia ser:

#Programa para ler e imprimir nome do usuario
#Solicitando a idade e calculando o valor em 15 anos
print('Digite seu nome:')
name = input()
print('Qual sua idade:')
age = input()
print('Bem vindo ' + name)
print('Voce tera ' + (age + 15) + ' anos daqui a 15 anos')
Enter fullscreen mode Exit fullscreen mode

Mas ao executarmos, teremos um erro:

Digite seu nome:
joao
Qual sua idade:
12
Bem vindo joao
Traceback (most recent call last):
  File "C:\Pessoal\Dropbox\Youtube\Python\codes\nomeIdadeUsuario.py", line 8, in <module>
    print('Voce tera ' + (age + 15) + ' anos daqui a 15 anos')
TypeError: can only concatenate str (not "int") to str
Enter fullscreen mode Exit fullscreen mode

Se verificarmos a linha 08, estamos somando a variável age com o número 15, e isso não é possível. O valor armazenado em age é uma string, lembre-se que o input( ) retorna uma string.

Para podermos converter um valor do tipo string para um valor inteiro, a linguagem Python possui a função int( ). E para converter o valor inteiro para uma string, a função str ( ).

Alterando a última linha para converter a idade de valor string para um valor numérico, somar com 15 e depois converter novamente para uma _string _e ser impresso na tela, nosso código ficará:

#Programa para ler e imprimir nome do usuario
#Solicitando a idade e calculando o valor em 15 anos
print('Digite seu nome:')
name = input()
print('Qual sua idade:')
age = input()
print('Bem vindo ' + name)
print('Voce tera ' + str(int(age) + 15) + ' anos daqui a 15 anos')
Enter fullscreen mode Exit fullscreen mode

E sua execução:

Digite seu nome:
joao
Qual sua idade:
20
Bem vindo joao
Voce tera 35 anos daqui a 15 anos
Enter fullscreen mode Exit fullscreen mode

A função float( ) é similar à função int( ), mas converte o tipo de dado string para o tipo ponto flutuante.

Erros comuns

Não se pode misturar tipos de dados diferentes dos esperados no uso de um operador.

>>> 'tenho ' + 15 + ' anos'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

>>> 'texto 1' * ' texto 2'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'

>>> 'texto ' * 5.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
Enter fullscreen mode Exit fullscreen mode

Cuidado para não errar o nome da variável ao tentar utilizá-la.

>>> mensagem = 'teste'
>>> print(mensage)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'mensage' is not defined. Did you mean: 'mensagem'?
Enter fullscreen mode Exit fullscreen mode

Mantenha consistência no valor de uma string, se você abrir com aspas duplas, então você deve fechar com aspas duplas. Da mesma forma para aspas simples.

Exemplos de erros no shell - consistência no valor de string

>>> mensagem = "Alguma mensagem aqui.'
  File "<stdin>", line 1
    mensagem = "Alguma mensagem aqui.'
               ^
SyntaxError: unterminated string literal (detected at line 1)
Enter fullscreen mode Exit fullscreen mode

LINKS DA SÉRIE:

Instalando Python

Conceitos Iniciais #01

Oldest comments (0)