Definição

Estrutura básica de um programa em Python, conceitos básicos, tipos de dados e variáveis, operadores em Python, tipos de operadores e relações de precedência, entrada e saída de dados em Python, formas de entrada e saída de dados, com suas peculiaridades.

PROPÓSITO

Codificar programas básicos em Python, utilizando corretamente os tipos de dados, variáveis, operadores e as formas de entrada e saída de dados.

Preparação

Antes de iniciar o conteúdo deste tema, instale em seu computador a versão Python 3.7.1. Busque um tutorial sobre Instalação do Interpretador Python 3 e a IDE PyCharm.

OBJETIVOS

Módulo 1

Identificar a linguagem Python, seus tipos de dados e variáveis

Módulo 2

Reconhecer os operadores e suas relações de precedência na linguagem Python

Módulo 3

Descrever as formas de entrada e saída de dados na linguagem Python

Introdução

Nos últimos anos, a programação tem recebido atenção especial na formação profissional. Muitas escolas de Educação Básica (ensinos Fundamental e Médio) estão introduzindo disciplinas que ensinam os conceitos básicos de programação. Para que o estudante realmente consiga codificar programas, e estes sejam executados por um computador, é necessário que alguma linguagem de programação seja utilizada. 

Dentre as diversas linguagens de programação que existem, Python é considerada uma das principais. Recentemente, a IEEE Computer Society classificou-a como a linguagem mais indicada para aprender em 2020. Isto se deve à sua eficiência no desenvolvimento de machine learning, inteligência artificial, ciência, gestão e análise de dados.

MÓDULO 1


Identificar a linguagem Python, seus tipos de dados e variáveis

machine learning

É uma tecnologia na qual os computadores têm a capacidade de aprender de acordo com as respostas esperadas por meio de associações de diferentes dados, os quais podem ser imagens, números e tudo que essa tecnologia possa identificar. Machine learning é o termo em inglês para a tecnologia conhecida no Brasil como aprendizado de máquina.

(IBM, 2020)

Introdução

A linguagem Python tem se tornado uma das mais populares nos últimos anos, contando com uma comunidade atuante de desenvolvedores. Python é considerada uma linguagem de fácil aprendizado e que permite desenvolver aplicações voltadas para a web.

Algumas de suas principais características são ser portável e escalável, além de suportar integração com os principais sistemas de bancos de dados e poder ser utilizado para desenvolver scripts que interagem com outros programas.

Conceitos

Python é uma linguagem de programação de alto nível, que permite que o programador utilize instruções de forma intuitiva, tornando seu aprendizado mais simples do que o aprendizado de uma linguagem de baixo nível.

Nas linguagens de baixo nível, o programador precisa se expressar de forma muito mais próxima do que o dispositivo entende, o que leva naturalmente a um distanciamento da linguagem que é utilizada para comunicação entre duas pessoas.

Saiba mais

Pela sua simplicidade de aprendizado e por permitir que o programador se expresse de forma mais próxima da que ele utiliza normalmente para se comunicar, Python tem sido utilizado em diversos cursos universitários como a primeira linguagem com que os alunos têm contato ao programar.

Em Python, existem os tipos numéricos int e float. Estes tipos são usados para expressões algébricas, que utilizam operações como soma, subtração, produto, divisão ou exponenciação. 

Fique tranquilo, porque os tipos serão detalhados daqui a pouco. 

Agora, vamos utilizar o Python Console, na IDE PyCharm, para ter nosso primeiro contato com a programação em Python. Vamos lá? 

No prompt interativo >>>, digite a expressão algébrica 5 + 8 e pressione a tecla [ENTER] ou [RETURN] do seu teclado. 

Observe o resultado:

Saiba mais

O Python Console permite que você calcule expressões algébricas como uma calculadora, além de executar instruções básicas em Python.

O TIPO int

É o tipo para manipular números inteiros. Fazendo uma analogia com a matemática, o tipo int é usado para elementos do conjunto dos inteiros ().

Diferentemente de outras linguagens, como C ou Java, Python não limita o tamanho de uma variável de qualquer tipo. Então, não existe um valor inteiro máximo definido em Python. O limite depende da quantidade de memória disponível no computador. 

De volta ao Python Console, veja algumas coisas interessantes. 

No prompt interativo >>>, digite 50 * 3 e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

O operador (*) é da multiplicação. Assim, a sua calculadora disponível no Python Console faz os produtos com este operador. 

Agora, digite 1_000_000 e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Atenção

Python permite que você utilize o underline (_) como separador de milhar. Isso ajuda a visualizar números com muitos dígitos.

Para encerrarmos este primeiro contato com o tipo int, verifique que o valor do exemplo acima é inteiro. Digite type(1_000_000) e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Observe que a função type(parâmetro) informa o tipo do parâmetro.

O TIPO float

É o tipo para manipular números com parte inteira e parte decimal, chamados de números de ponto flutuante. Fazendo uma analogia com a matemática, o tipo float é usado para elementos do conjunto dos reais ()

Para diferenciar um número real de um inteiro, é possível utilizar a parte decimal zerada. No prompt interativo >>>, digite type(50.0) e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Atenção

Vale ressaltar que devemos usar o ponto para separar a parte inteira da parte decimal, e não a vírgula.

No prompt, digite 50.0 (com ponto) e pressione a tecla [ENTER] ou [RETURN] do seu teclado. Em seguida, digite 50,0 (com vírgula) e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Ao usar a vírgula como separador em Python, o que ocorre, na verdade, é a criação de uma tupla  de dois elementos. E não o tipo float. Você vai ver mais detalhes sobre tuplas em um momento posterior. 

Embora os tipos int e float sejam semelhantes, por tratarem de números, eles têm propriedades um pouco diferentes. Em expressões algébricas, sempre que somamos, subtraímos ou multiplicamos apenas elementos do tipo int, o resultado é int. Porém, basta um operando float para que o resultado seja float

Observe a figura a seguir:

Vamos analisar a exponenciação. Para realizar esta operação matemática, utilizamos o operador (**). Veja a figura a seguir:

Veja que, basta que a base seja float para que o resultado também o seja.

Atenção

Diferentemente de outras linguagens, como C, a divisão de dois números inteiros não necessariamente tem resultado inteiro.

Digite 5/2 e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Para obter o quociente inteiro e o resto, quando dois inteiros são divididos, é necessário utilizar os operadores // e %, respectivamente. Ao dividir 21 por 2, temos quociente 10 e resto 1. Observe a figura a seguir:

Tomando os devidos cuidados, os tipos int e float permitem realizar praticamente todas as operações numéricas que um programador iniciante vai precisar.

O TIPO bool

Uma expressão algébrica, como vimos nos exemplos dos tipos int e float, é avaliada como um número, seja destes tipos ou outro tipo numérico admitido em Python. Porém, utilizar expressões não algébricas também é bastante comum. E uma boa notícia é que Python pode avaliar expressões deste tipo também. 

No prompt interativo >>>, digite a expressão 2 < 3 e pressione a tecla [ENTER] ou [RETURN] do seu teclado. 

Observe o resultado:

Repare que o resultado desta expressão não é um número, mas, sim, a palavra True. Caso você colocasse a expressão 2 > 3, o resultado seria False, como pode ver a seguir.

As expressões que você viu nos dois exemplos acima são chamadas de expressões booleanas. Elas são expressões que podem ser avaliadas como um dos dois valores booleanos: True ou False. Em Python, existe o tipo bool, utilizado para permitir o tratamento de expressões como esta.

Vamos ver o operador not agora. Ele é um operador unário, ou seja, só precisa de um operando. Este operador inverte o valor booleano. Se o valor original for True, not(valor) terá o valor False. E vice-versa. 

No prompt interativo >>>, digite a expressão not(2 < 3) e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Atenção

É possível também escrever expressões booleanas compostas, utilizando conectivos como o E e o OU. Vamos ver maiores detalhes destas expressões no próximo módulo.  

Strings

Além dos tipos int, float e bool que já vimos, Python também admite uma grande quantidade de outros tipos, mais complexos.

Para manipular textos, por exemplo, existe o tipo de string chamado str. Em uma variável deste tipo str, é possível armazenar letras, números, espaços, pontuação e diversos símbolos.

No prompt interativo >>>, digite ‘Hello World’ e pressione a tecla [ENTER] ou [RETURN] do seu teclado. 

Observe o resultado:

Como só existe um valor no prompt, ele é avaliado como ele mesmo, assim como a expressão 7 é avaliada como 7.

Mas, veja que interessante! No prompt interativo >>>, digite ‘Hello’ + ‘World’ e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

Houve a junção das duas sequências de caracteres em uma só. Ou seja, a expressão ‘Hello’ + ‘ World’ foi avaliada como uma string, mesmo que o resultado não tenha sido exatamente aquele que você deve ter imaginado antes de fazer a experiência. Coloque o caractere espaço como mais uma parcela desta soma e agora terá uma string igual à do primeiro exemplo.

Para delimitar uma string, podemos utilizar:

  • Aspas simples: ‘uma string’
  • Aspas duplas: “uma string”
  • Aspas simples triplas: ‘’’uma string’’’
  • Aspas duplas triplas: “””uma string”””

Existem alguns métodos interessantes para tratar strings em Python. Entre eles, ressaltamos:

upper

Transforma todas as letras em maiúsculas.

lower

Transforma todas as letras em minúsculas.

split

Quebra a string em substrings.

Veja os exemplos a seguir:

A lista gerada com o método split() tem três elementos, porque a string original tinha três palavras. 

Com isso, vimos os primeiros conceitos dos tipos int, float, bool e str. Vamos ver agora alguns detalhes que podem ajudar no início de sua jornada como programador Python.

Variáveis e atribuição

Ao estudarmos Matemática ao longo da Educação Básica, fomos ensinados a utilizar as variáveis como nomes de determinado valor. Ao escrever x = 10, estamos dando o valor 10 à variável x. Ao programar, é possível manter esta interpretação e ainda mais. Podemos entender que o valor 10 poderá ser recuperado posteriormente, bastando utilizar a variável x em uma expressão.

Atenção

Em Python, o operador de atribuição é o = (símbolo de igual).  A instrução x = 10 atribui o valor 10 à variável x.

No prompt interativo >>>, digite x = 10 e pressione a tecla [ENTER] ou [RETURN] do seu teclado. Em seguida, digite x e pressione a tecla [ENTER] ou [RETURN].

Observe que o retorno do Python Console foi 10.

Atenção

Ao avaliar uma expressão que contenha uma variável, o valor da variável é utilizado para o cálculo do resultado da expressão.

Digite y = 2*x e pressione a tecla [ENTER] ou [RETURN]. Em seguida, digite y e pressione a tecla [ENTER] ou [RETURN].

Observe que a variável y agora tem o valor 20, que é o resultado da multiplicação de 2 por 10 (valor de x).

Em Python, não é necessário declarar uma variável antes de utilizá-la. Basta atribuir um valor inicial à variável e utilizá-la dali em diante. Justamente por não haver uma declaração inicial da variável, o tipo é vinculado ao valor atribuído a ela.

Observe a figura a seguir:

Inicialmente, o valor 20.0 é atribuído à variável a. Assim, o seu tipo é float. Porém, em seguida, a variável a passa a ter um valor do tipo int. Por isso, seu tipo passa a ser int

Embora não seja necessário declarar uma variável para utilizá-la, não é possível utilizar uma variável que não tenha recebido alguma atribuição de valor. No prompt interativo, digite b e pressione a tecla [ENTER] ou [RETURN].

Veja que a mensagem de erro informa que o nome b não foi definido. Ou seja, não é possível determinar o valor atribuído a este nome. 

Python também permite a atribuição múltipla, ou seja, mais de uma variável receber atribuição na mesma linha. Veja o exemplo a seguir:

Nomes de variáveis

Os nomes das variáveis podem ser compostos por letras, o underline (_) e, exceção do primeiro caractere, números de 0 a 9.

Veja os exemplos:

minhaVariavel, _variavel, salario1 e salario1_2

são válidos.

1variavel e salario-1

não são válidos.

minhaVariavel e minhavariavel

são nomes de duas variáveis distintas.

Atenção

Mesmo que seja um nome permitido, nem sempre um nome é bom para uma variável. Tente utilizar nomes que ajudem a entender o significado da variável, para ganhar tempo na hora de entender o código posteriormente. Por exemplo: salario é um nome de variável melhor que s.

Constantes

Em Python, não existe o conceito de constante. Se você precisar de uma constante ao longo de sua jornada como programador, atribua o valor a uma variável e tome cuidado para não mudar este valor.

Dica

Uma dica é iniciar o nome desta variável com c_, o que vai diferenciar esta variável das outras. Por exemplo, é possível utilizar a expressão c_PI = 3.141592, para armazenar o valor de PI e agilizar o cálculo de área e perímetro de um círculo.

Conversões de tipos

Quando temos tipos diferentes envolvidos na mesma expressão, o Python converte implicitamente cada, operando para o tipo mais abrangente envolvido nesta expressão.

Estamos usando a palavra abrangente, mas poderíamos falar que existem tipos que englobam (ou contêm) outros.

Exemplo

Por exemplo: um número do tipo int pode ser visto como um float com a parte decimal nula. Porém, o inverso não é verdade. Ou seja, o conjunto dos inteiros (int) é um subconjunto do conjunto dos reais (float).

Assim, a expressão 5 + 0.68 – que envolve um int e um float – tem como resultado 5.68. O inteiro 5 é convertido pelo Python para o número de ponto flutuante 5.0 antes que a soma (de dois valores float) seja efetuada de fato. 

Uma conversão implícita não intuitiva é dos valores booleanos True e False em inteiros, respectivamente, 1 e 0. Veja os exemplos a seguir:

Com isso, podemos perceber a seguinte relação entre os tipos bool, int e float:

Além das conversões implícitas, o programador também pode usar as conversões explícitas, quando ele força que o valor seja tratado como de determinado tipo. Para isto, é necessário usar o construtor do tipo desejado, com o valor passado como parâmetro (entre parênteses). 

Veja os exemplos a seguir:

Atenção

O int 2 pode ser tratado naturalmente como o float 2.0, basta acrescentar a parte decimal nula. Porém, ao tentar tratar um float como int, ocorre a remoção da parte decimal. Fique atento, porque não é uma aproximação para o inteiro mais próximo, e sim o truncamento.

Utilitários e módulos

O utilitário dir apresenta todos os atributos e métodos disponíveis para determinado tipo de dado. No prompt interativo >>>, digite dir(int) e pressione a tecla [ENTER] ou [RETURN] do seu teclado.

O utilitário help apresenta a documentação relativa a determinado tipo de dado. 

Caso você tenha alguma dúvida sobre o que é possível fazer com determinado tipo, os utilitários dir e help podem ser úteis.

Como vimos na explicação sobre operadores, Python disponibiliza os operadores matemáticos básicos. Porém, é comum precisarmos de outras operações matemáticas, como raiz quadrada ou funções trigonométricas. Para estas operações mais particulares, é possível utilizar o módulo math.

Para utilizar, basta que no prompt interativo >>>, você digite import math e pressione a tecla [ENTER] ou [RETURN] do seu teclado. 

O módulo math tem as seguintes funções, entre outras:

Função Descrição
sqrt(x) Raiz quadrada de x
ceil(x) Menor inteiro maior ou igual a x
floor(x) Maior inteiro menor ou igual a x
cos(x) Cosseno de x
sin(x) Seno de x
log(x, b) Logaritmo de x na base b
Pi Valor de Pi (3.141592...)
E Valor de e (2.718281...)

Atenção

É importante saber que a utilização das funções do módulo math deve ser sempre chamada com o nome do módulo antes do nome da função, como math.sqrt(3) – que calcula a raiz quadrada de 3.

Outro módulo matemático que pode ser útil em Python é o fractions. Ele permite o tratamento de frações a partir do numerador e do denominador (inteiros). Para utilizar, basta que no prompt interativo >>>, você digite import fractions e pressione a tecla [ENTER] ou [RETURN] do seu teclado. 

Assim, é possível criar objetos da classe Fractions da seguinte maneira:

Observe que a variável a NÃO é tratada como o float 0.4. Isto permite que sejam armazenadas frações com limite muito maior que o existente para variáveis do tipo float, uma vez que o tipo inteiro só é limitado pela memória disponível no computador.

Resumo

No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no módulo 1. Assista:

Verificando o aprendizado

ATENÇÃO!

Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:

O conteúdo ainda não acabou.

Clique aqui e retorne para saber como desbloquear.

MÓDULO 2


Reconhecer os operadores e suas relações de precedência na linguagem Python

Introdução

Neste módulo, você vai conhecer os principais operadores utilizados em Python, bem como as relações de precedência existentes entre eles. Já vimos no módulo anterior os tipos iniciais de dados em Python, o que nos permite, agora, entender como as variáveis destes tipos podem ser manipuladas. Os operadores que a linguagem disponibiliza para os programadores nos possibilitam realizar esta manipulação.

Conceitos

Os operadores podem ser divididos em matemáticos, booleanos, de strings e de indexação. Vamos analisar cada um destes grupos com mais detalhes a seguir.

Operadores matemáticos

Os operadores matemáticos são muito semelhantes àqueles que aprendemos ao longo de nossa jornada como estudantes, aprendendo Álgebra e Aritmética na escola. Existem algumas pequenas diferenças, como a divisão (que pode ser a usual ou a divisão inteira), mas é possível identificar operações que fizemos ao longo de toda nossa vida. A tabela a seguir lista os operadores de expressão aritmética disponíveis em Python.

Operação matemática Símbolo usado Exemplo
Equação Resultado
Soma + 2.5 + 1.3 3.8
Subtração - 2.5 - 1.3 1.2
Multiplicação * 2.5 * 1.3 3.25
Divisão / 2.5/1.3 1.923076923076923
Divisão inteira // 9/2 4
Resto na divisão inteira % 9%2 1
Valor absoluto abs(parâmetro) abs(-2.5) 2.5
Exponenciação ** 2**4 16

Ao escrever uma expressão algébrica, o programador pode utilizar a precedência de operadores existente em Python (implícita) ou explicitar a ordem que ele deseja que a expressão seja avaliada.

Por exemplo, a expressão 3 + 2 * 5 tem como resultado 25 ou 13?

Resposta

Aprendemos no ensino fundamental que as operações de produto e divisão têm precedência sobre as operações de soma e subtração. Ou seja, um produto será realizado antes de uma soma, na mesma expressão. Assim, a expressão acima tem como resultado 13. Isto ocorre sempre que não forem explicitadas outras relações de precedência, com o uso de parênteses. Caso o programador quisesse forçar que a soma ocorresse primeiro, ele deveria escrever assim: (3 + 2) * 5.

Além das operações algébricas, é possível realizar operações de comparação. Os operadores de comparação têm como resultado um valor booleano (True ou False).

Símbolo usado Descrição
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
== Igual
!= Não igual

Atenção

Cabe observar que o operador utilizado para comparar se dois valores são iguais é o ==, ou seja, duplo sinal de igual. Tome cuidado para não confundir com o operador de atribuição, que é o sinal de igual apenas uma vez (=).

Existe uma outra lista de operadores que executam operações matemáticas, mas além disso atualizam o valor da variável utilizada. Eles são chamados de operadores compostos. Por exemplo, veja a imagem a seguir:

A variável x inicialmente recebeu o valor 10. Em seguida, a instrução x = x + 1, que causa estranheza quando lembramos da Matemática que aprendemos ao longo da vida, é muito comum quando estamos programando. Esta instrução significa “acrescente uma unidade ao valor de x e guarde este resultado na própria variável x”. Como x valia 10, o resultado do lado direito do operador (=) é 11. Este resultado é, então, armazenado na própria variável x.

Esta operação de acrescentar determinado valor a uma variável e armazenar o resultado na própria variável poderia ser feita com o operador += (mais igual). Veja a imagem a seguir:

Na tabela a seguir, estão os operadores compostos disponíveis em Python. Considere a variável x com o valor inicial 10, para verificar os resultados.

Nome Símbolo usado Exemplo
Instrução Resultado
Mais igual += x += 2 x passa a valer 12
Menos igual -= x -= 2 x passa a valer 8
Vezes igual *= x *= 2 x passa a valer 20
Dividido igual /= x /= 2 x passa a valer 5
Módulo igual %= x %= 3 x passa a valer 1

Operadores booleanos

Relembrando

As expressões booleanas são aquelas que podem ter como resultado um dos valores booleanos: True ou False.

É comum utilizarmos os operadores de comparação em expressões booleanas, mas não só eles. Assim como é possível escrever expressões algébricas complexas concatenando diversas expressões menores, podemos escrever expressões booleanas grandes, com os operadores and, or e not. Observe o comportamento de cada um dos operadores booleanos nas tabelas a seguir.

p not (p)
True False
False True
p q p and q
True True True
True False False
False True False
False False False
p q p or q
True True True
True False True
False True True
False False False

Operadores de String

É possível processar texto utilizando os operadores de String disponibilizados em Python. De forma muito parecida com o que conhecemos nas operações numéricas, temos os operadores de comparação e mais, como soma e multiplicação.

Exemplo

Por exemplo, o operador == verifica se as strings dos dois lados são iguais. Porém, os operadores < e > comparam as strings usando a ordem do dicionário.

A tabela a seguir traz um pequeno conjunto dos operadores disponíveis em Python para manipulação de strings. Lembre-se de que você pode utilizar o utilitário help no Python Console, para verificar a lista completa. Para isto, basta digitar help(str) e pressionar ENTER no teclado.

Uso Descrição
x in s True se x for um subconjunto de s
x not in s False se x for um subconjunto de s
s + t Concatenação das strings s e t
n*s Concatenação de n cópias da string s
s[i] Caractere de índice i na string s
len(s) Comprimento da string s

Operador de indexação

É possível acessar individualmente um caractere de uma string. Para isto, utilizamos o operador de indexação.

Relembrando

Lembre-se de que a string é uma sequência de caracteres. Começando pelo primeiro caractere, que ganha o índice 0, os caracteres seguintes ganham um índice incremental.

Considere a seguinte instrução: s = ‘Programa’

A indexação ocorre como na tabela a seguir:

P r o g r a m a
0 1 2 3 4 5 6 7

Com isso, temos:

S Programa
s[0] P
s[1] r
s[2] o
s[3] g
s[4] r
s[5] a
s[6] m
s[7] a

Precedência de operadores

A tabela a seguir traz as relações de precedência entre os operadores, com as linhas mais altas tendo prioridade sobre as linhas mais baixas. Isto é, elas ocorrem primeiro. Dentro da mesma linha, a precedência é da esquerda para a direita.

Operador Descrição
[expressões ...] Definição de lista
x[], x[índice : índice] Operador de indexação
** Exponenciação
+x, -x Sinal de positivo e negativo
*, /, //, % Produto, divisão, divisão inteira, resto
+, - Soma, subtração
in, not in, <, <=, >, >=, <>, !=, == Comparações, inclusive a ocorrência em listas
not x Booleano NOT (não)
and Booleano AND (e)
or Booleano OR (ou)

Atenção

É importante ficar atento ao uso correto dos operadores, respeitando a precedência entre eles, para evitar que algum cálculo seja realizado corretamente, mas com resultado diferente do esperado por você ao programar.

Resumo

No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no módulo 2. Assista:

Verificando o aprendizado

ATENÇÃO!

Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:

O conteúdo ainda não acabou.

Clique aqui e retorne para saber como desbloquear.

MÓDULO 3


Descrever as formas de entrada e saída de dados na linguagem Python

Introdução

Até agora, você conheceu conceitos básicos de Python (tipos de dados, operadores e precedência) e utilizou apenas o Python Console. Neste módulo, você vai escrever seu primeiro programa em Python, utilizando o que aprendeu até aqui e, também, as formas de entrada e saída de dados que a linguagem oferece.

Conceitos

Para escrever um programa em Python, será essencial utilizar as formas de saída de dados, para exibir ao usuário mensagens e resultados de operações. Caso você deseje que o usuário informe algum dado para que seu programa processe, será necessário utilizar as formas de entrada de dados.

Para criar seu primeiro programa, clique com o botão direito do mouse no nome do projeto, na guia de navegação do lado esquerdo. Em seguida, escolha a opção New > File.

Atribua um nome ao seu arquivo. Neste primeiro exemplo, vamos chamar de primeiro_programa.py

Ao nomear o arquivo, será aberta uma nova aba, do lado direito, com o espaço para que você efetivamente digite as instruções.

Digite a seguinte linha, exatamente como está escrita: print(“Hello World”) 

Observe como a IDE PyCharm edita visualmente o texto, para ajudar você, programador, a identificar as partes principais do seu programa.

Em seguida, clique com o botão direito do mouse sobre o nome do programa e escolha a opção Run ‘primeiro_programa’. Também é possível executar com a combinação de teclas CTRL+Shift+ F10.

Após executar, observe o console:

Veja que foi impresso no console exatamente o que colocamos entre aspas, ao chamar a função print(). Esta é a primeira forma de saída de dados: usar a função print() com uma string sendo passada como parâmetro (entre os parênteses).

Atenção

É importante perceber que a função print(), além de imprimir a string, também salta o cursor para a próxima linha.

Como você deve ter percebido, o que a função print() recebeu entre parênteses foi uma string. Ou seja, poderíamos ter passado para ela uma string definida anteriormente, como no exemplo a seguir:

Também poderíamos ter passado como parâmetro uma variável definida anteriormente. A função print() vai trabalhar com o valor desta variável. Observe as figuras a seguir:

Entrada de dados com a função input()

Quando o programador quiser que o usuário entre com algum valor, ele deverá exibir na tela o seu pedido. Para isto, a função input() é muito útil. Ela tanto exibe na tela o pedido, como permite que o valor informado pelo usuário seja armazenado em uma variável do seu programa. 

Analise a figura a seguir:

A linha 1 fará com que a frase Entre com seu nome:  seja exibida no console, mas a execução do programa fica travada até que o usuário digite ENTER no teclado. Tudo o que foi digitado até o ENTER vai ser armazenado na variável nome. A linha 2 fará a exibição do conteúdo da variável nome. Veja o resultado no console, com o usuário tendo digitado Fulano de Tal.

É importantíssimo perceber que a função input() trata tudo o que for digitado pelo usuário como uma string, armazenando na variável designada pelo programador para isso. Mesmo que o usuário entre com apenas uma letra ou um número, isto será armazenado como uma string na variável.

Vamos analisar o exemplo a seguir:

Veja o console quando o programa é executado:

O usuário digitou 3 e ENTER. Mesmo sendo um valor, a variável numero trata como a string ‘3’. Isto impede que seja realizada a operação de soma com o inteiro 2, por exemplo. Poderíamos também usar a instrução print(type(numero)) na linha 2, para confirmar. Veja:

A função eval()

A função eval() pode nos ajudar a resolver o problema que acabamos de observar. Ela recebe a string (vinda da input()) e trata como valor numérico. Veja o exemplo a seguir:

Mesmo tendo recebido a string ‘1+2’ como parâmetro, a função eval() efetuou a soma de 1 com 2. Observe que confirmamos que s é uma string, com a instrução type(s).

Atenção

Para tratar a entrada do usuário como um número e com isso realizar operações algébricas, por exemplo, é necessário utilizar a função eval() em conjunto com a input().

Veja o próximo exemplo:

icone teoria na prática

Atividade

Como exercício prático, tente escrever um programa para calcular e informar o IMC (índice de massa corpórea) do usuário, que deverá informar seu peso e sua altura. Lembre-se de que o IMC é calculado pela fórmula: IMC=pesoaltura2

Clique no botão para ver a resolução. Objeto com interação.

Uma solução simples é a da figura a seguir:

Saída formatada de dados

Quando desejamos que a saída siga determinado padrão – por exemplo, de hora ou de data –, existem algumas possibilidades para usar a função print(). É sempre possível utilizar a concatenação de strings, com o operador +, para montar a frase como quisermos.

Suponha que tenhamos as seguintes variáveis:

hora = 10

minutos = 26

segundos = 18

Poderíamos chamar a função print() com o separador : da seguinte forma:

Porém, existe outra possibilidade, usando o método format(). Com ele, podemos montar a string com as chaves {} indicando onde entrarão valores, passados como parâmetros separados por vírgulas.

Atenção

É importante observar que a quantidade de chaves precisa ser igual à quantidade de variáveis passadas como parâmetros no método format().

Seria muito bom se não precisássemos nos preocupar com esta correspondência, para evitar erros bobos. Isto é possível! Para tornar a saída formatada ainda mais intuitiva, basta utilizar a letra ‘f’ no início dos parâmetros da função print(), e colocar cada variável dentro das chaves na posição em que deve ser impressa. 

Veja como fica ainda mais fácil entender:

Também é possível especificar a largura de campo para exibir um inteiro. Se a largura não for especificada, ela será determinada pela quantidade de dígitos do valor a ser impresso. Veja a figura a seguir:

Observe que os valores 10 e 100 foram impressos com espaços em branco à esquerda. Isto ocorreu porque definimos que a primeira variável deveria ser impressa com 4 espaços com {:4} (2 foram ocupados e 2 ficaram em branco), e que a segunda variável deveria ser impressa com 5 espaços com {:5} (3 foram ocupados e 2 ficaram em branco). Também é válido perceber que o padrão é alinhar os valores à direita do espaço reservado para a impressão da variável. 

O método format() também pode ser usado para imprimir valores de ponto flutuante com a precisão definida. Veja a figura a seguir:

Ao usar {:8.5}, estamos determinando que a impressão será com 8 espaços, mas apenas 5 serão utilizados. 

Além de usar o método format(), outra possibilidade interessante é a impressão de strings de diferentes maneiras.

Dica

Para imprimir uma substring, por exemplo, basta utilizar os colchetes para indicar o intervalo de índices que devem ser impressos. Vale lembrar que o primeiro caractere da string é indexado com 0.

Veja a figura a seguir:

Atenção

Um ponto de atenção é que usar [0:4] provoca a impressão dos índices 0, 1, 2 e 3, mas não do índice 4. Analogamente, usar [2:8] provoca a impressão dos índices de 2 a 7, mas não o 8.

Também é possível imprimir a string como lida da direita para a esquerda. Para isso, deve-se utilizar [: : -1]. Este valor -1 indica que a leitura dos caracteres será feita no sentido oposto ao tradicional. Observe a figura a seguir:

Atenção

Fique atento quando utilizar o intervalo na impressão no sentido inverso, porque os limites do intervalo devem respeitar este sentido.

Boas práticas de programação

Ao começar sua jornada como programador, é importante perceber que existem algumas práticas que não são obrigatórias, mas podem ajudar muito no seu aprendizado. Além disso, podem permitir que você corrija mais rapidamente erros que venham a surgir no futuro e tornar seu código mais fácil de ser compreendido por outro programador, favorecendo o trabalho em equipe.

Uma sugestão que já foi abordada neste tema é utilizar nomes de variáveis que ajudem a compreensão do que elas representam. Por isso, utilizar uma variável de nome altura é mais indicado do que a

Também é muito importante utilizar comentários no seu programa, explicando o que aquele trecho resolve. Em Python, os comentários podem ser:

  • De uma linha, iniciando-a com #.
  •  De várias linhas, delimitando o início e o fim do comentário com “”” (três aspas duplas).

Dica

É importante lembrar que os comentários não são instruções a serem executadas. Então, você pode escrever de forma simples e objetiva, sem obedecer às regras de sintaxe da linguagem.

Uma característica marcante da comunidade de desenvolvedores Python é manter uma lista de propostas de melhorias, chamadas PEP (Python Enhancement Proposals). Dentre as PEPs, destaca-se a PEP8, que estabelece um guia de estilo de programação.

Saiba mais

Para saber mais sobre as PEPs, visite o site Python.org.

Resumo

No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no módulo 3. Assista:

Verificando o aprendizado

ATENÇÃO!

Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:

O conteúdo ainda não acabou.

Clique aqui e retorne para saber como desbloquear.

Conclusão

Considerações Finais

Neste tema, você aprendeu as principais características da linguagem Python, além de conhecer seus tipos de dados, operadores e as formas mais usadas para interagir com o usuário. O uso correto destes conceitos é essencial na sua jornada de formação como programador. 

Recomendamos que você fique atento aos detalhes e procure sempre programar de forma organizada. Isto vai evitar erros e tornar sua experiência mais agradável.

Podcast

CONQUISTAS

Você atingiu os seguintes objetivos:

Identificou a linguagem Python, seus tipos de dados e variáveis

Reconheceu os operadores e suas relações de precedência na linguagem Python

Descreveu as formas de entrada e saída de dados na linguagem Python