Python: From Zero to…Sidekick

O básico para iniciar na linguagem!

Christian Costa
Data Hackers
9 min readOct 6, 2019

--

Sidekick?

Há uma grande quantidade de vídeos, artigos e livros sobre programação intitulados “From Zero to Hero” (Do zero ao Herói). Programação é uma habilidade desenvolvida ao longo do tempo, com muita prática e sofrimento (O Peter Norvig tem um ótimo artigo sobre isso). A ideia de ir “Do Zero ao Ajudante” surge do pensamento de que um tutorial não pode te transformar no Batman, mas pode ser o suficiente pra você ser um ajudante (sidekick em inglês).

Python?

Se você é da área de tecnologia provavelmente ouviu muito sobre essa linguagem ultimamente. Análise de dados, inteligência artificial, redes neurais, jogos feitos com python, python como uma alternativa no backend de aplicações web, enfim, uma tonelada de aplicações. Entretanto, antes de você codificar o próximo Overwatch ou desenvolver a inteligência artificial que vai acabar com a raça humana, precisa aprender os conceitos básicos da linguagem.

Objetivos

O objetivo aqui é introduzir a linguagem a pessoas que vieram de outras linguagens de programação e querem aprender Python, pessoas que já usaram a linguagem mas não lembram bem a sintaxe, ou que querem revisar python antes da prova. Se você é iniciante e não está familiarizado com os conceitos de programação eu recomendo fortemente as aulas do Gustavo Guanabara que ensina o conteúdo de forma completa e detalhada.

O nascimento de uma lenda

Essa nobre linguagem foi criada em 1991 pelo holandês Guido van Rossum e desde então vem conquistando os corações de programadores mundo afora. Segundo o site da Python Software Foundation o Python é uma linguagem:

“Poderosa… e rápida; se dá bem com os outros; roda em qualquer lugar; é amigável e fácil de aprender; é Open [Source]”.

O Python muitas vezes é referido como uma linguagem de scripts, uma linguagem orientada a objetos e até mesmo uma linguagem científica, e ela realmente é tudo isso, em outras palavras ela é uma linguagem multipropósito.

Agora chega de apresentações e vamos ao código!

Photo by Hermes Rivera on Unsplash

Introdução

Comentários

Ao codificar pode ser que as vezes você queira remover temporariamente uma parte do código, ou documentar o que você esta fazendo. Para isso existem os comentários, que podem ser de uma linha (#)ou múltiplas linhas (‘’’ ‘’’). Ao rodar seu programa tudo aquilo que for comentário será ignorado.

https://gist.github.com/christiancost47

Escrevendo valores

Sempre que quiser escrever algo na tela utiliza-se o método print()

Variáveis

É comum referir-se às variáveis como “caixas” que guardam valores, mas é uma ideia muito mais eficiente pensar nelas como “identificações”(labels) de valores. Por exemplo em idade = 30, a idade é o identificador do valor 30.

Regras gerais ao nomear variáveis:

  • Variáveis devem ter APENAS letras, números e underscores(_) mas NÃO PODEM começar com números
  • NÃO podem ter espaços, usa-se “_” para separar as palavras, e devem ser curtas e descritivas
  • Python é case sensitive, isso significa que ele diferencia maiúsculas e minúsculas

Tipos de variáveis

Variavéis podem ser de quatro tipos:

  • Booleanas — As variáveis do tipo bool são utilizadas para condições de verdadeiro.
  • Inteiras — Obviamente as variáveis inteiras são referentes aos números inteiros
  • Flutuantes — Números de ponto flutuante são todos os números decimais, e em programação são chamados assim porque uma parte é constante e outra parte (o número depois da virgula) flutua, ou seja, varia, não é constante, não é fixo.
  • Texto — São variáveis do tipo texto

Tabela de Variáveis

Recebendo valores

Para receber um valor utiliza-se input(), entre os parênteses pode-se adicionar uma mensagem sobre o valor a ser recebido. Veja:

Operações

No Python as quatro operações aritméticas (soma, subtração, multiplicação e divisão) podem ser realizadas normalmente e também é possível obter o resto de uma divisão, apenas a parte inteira de uma divisão, e o resultado de um numero elevado uma potência.

Soma e subtração não tem segredo. Em multiplicação e divisão utiliza-se o asterisco * e a barra pra direita /:

Para obter o resto de uma divisão usa-se o sinal de porcentagem %, para obter apenas a parte inteira duas barras //, e para obter a potencia dois asteriscos seguidos pelo expoente desejado **n:

Tabela de Operações

Strings

As strings são o texto no seu código, para escrever basta utlizar aspas ‘ ’ ou aspas duplas “ “:

Transformando strings

É possível mudar a capitalização do seu texto, ou seja, transformar letras maiúsculas em minúsculas e vice-versa

Se você quiser transformas as primeiras letras de uma frase em maiúsculas, use title(). Se quiser deixar tudo maiúsculo, use upper(). Tudo minúsculo lower():

Novas linhas, tabs e espaços em branco

Para pular linhas usa-se \n dentro da string. Se precisar dar um tab, use \t

Você também pode remover espaços em branco no começo do texto usando lstrip(), no final do texto usando r.strip(), ou todos os espaços em branco usando tanto do começo quanto do final usando strip():

Format

E se como faz pra escrever uma string com variáveis no meio? Por exemplo a frase “Python foi criado em 1991 por Guido Van Rossun, onde o ano e o nome do criador são variaveis. Para não precisar copiar o valor de cada variável diretamente na string o python nos permite usar f-strings. As variaveis ano e nome são criadas individualmente, abre-se string com a letra f antes da abertura de aspas e utiliza seus respectivos nomes entre chaves { }. Assim:

Listas

O que são listas?

Listas são simplesmente coleções ordenadas de itens em uma determinada ordem. Pode ser uma lista de nomes, números, contatos, tarefas qualquer coisa!

Lembre-se: Computadores contam a partir de ZERO!

Para nós humanos o comum é contar do um ao dez, entretanto para os programas de computador a contagem começa do zero. Por essa razão, ao acessar um item 1 de uma lista, na verdade estaremos acessando o item 2. Pois sua posição é 2, mas seu index é zero. Portanto para acessar um item de uma lista usa-se seu index.

Como humanos contam: 1, 2, 3, 4, 5…
Como programas contam: 0, 1, 2, 3, 4, 5…

Criando uma lista

Para criar uma lista no Python basta usar colchetes [ ], e entre eles colocar os itens desejados:

Acessando elementos de uma lista

Para acessar um item de uma lista deve-se escrever o nome da lista, e o index do item desejado entre colchetes:

Acessando um intervalo específico de uma lista

Para acessar apenas um “pedaço” da lista, basta utilizar [inicio:final], onde inicio é o primeiro index desejado e final o ultimo index desejado. Veja:

Substituindo e adicionando itens

Para substituir um item passamos o nome da lista, a posição do item ser substituído e o novo valor.
Para adicionar um item no final da lista usamos .append() e para adicionar um item em qualquer posição usamos .insert(). Veja abaixo:

Removendo itens

Para um item pela sua posição utiliza-se del . E para remover pelo valor utiliza-se .remove().

Armazenando um item removido

Em alguns casos talvez seja conveniente tirar um valor de uma lista e colocar em outra. Nesses casos utilizamos .pop().

Organizando e verificando o tamanho de uma lista

Para organizar em ordem alfabética utilizamos .sort(), e em ordem alfabética reversa utilizamos .reverse(). Para verificar o tamanho de uma lista utilizamos len(). Vejamos:

Criando uma lista numérica

Além de criar uma lista do modo convencional (lista = [item1, item2, item3… itemN]), pode-se automatizar esse processo usando .list() e .range(). Dessa forma cria-se uma lista usando e dentro dela a sequência de números dentro de um intervalo desejado. Além de criar a lista é possível encontrar o valor máximo, mínimo e a soma dos números nessa lista, usando respectivamente min(), max(), e sum(). Veja:

Loop For

O Loop For (Laço For) é uma estrutura de repetição, o que significa basicamente que ela se repete (dedução genial) conforme for definido que ela o faça. Dessa forma tarefas repetitivas podem ser automatizadas.

Photo by Claire Satera on Unsplash

Estrutura

A estrutura clássica do for é utilizando .range() e um intervalo de números específico entre parênteses. O .range() pode receber até três parâmetros: .range(y), .range(x, y) e .range(x, y, z)

No primeiro caso y é o número final desejado dentro do intervalo, ou seja, ele vai de zero até y. No segundo caso, x é o número inicial e y o numero final. E no terceiro caso x é o número inicial, y o numero final e z é o passo(pace), em outras palavras, de quanto em quanto ele anda entre o index inicial e final.

O terceiro número passado também pode ser chamado de incremento, pois por padrão de x até y, o loop soma +1. Estabelecer um terceiro parâmetro muda esse incremento para +2, +3, +4 e assim por diante. Agora vejamos exemplos:

Para .range(x)

Para .range(x, y)

Para .range(x, y, z)

Para um range que realiza uma contagem regressiva, utilizamos o ultimo parâmetro negativo, e isso significa que entre o inicio e o final do intervalo ele vai decrementar a contagem. Veja:

Usando For com Listas

O for também pode ser usado pra exibir os valores de uma lista um por vez, ou valores em um intervalo específico da lista. Vejamos:

Criando uma lista a partir de outra lista

Utilizando o for e .append(), pode-se criar uma lista a partir de outra lista. Vejamos como se faz:

Condições

As estruturas if, else e elif são estruturas condicionais, e servem para fazer o controle das decisões ao longo do código. Para testar condições normalmente são utilizados operadores relacionais ou operadores lógicos. Veja as tabelas abaixo:

Operadores Relacionais

Operadores Lógicos

Estrutura

A estrutura básica do if/else é baseada em um valor inicial, e o teste desse valor, com as respectivas ações dependendo dos resultados do teste. Vamos ao primeiro exemplo:

Testando três condições

O exercício para definir se um aluno foi aprovado ou não é muito util ao introduzir as estruturas condicionais, portanto vamos ao old but gold:

Testando valores usando For

Em programação várias estruturas podem ser utilizadas em conjunto, com o for e if/else não poderia ser diferente. Vejamos o exemplo usando listas, loop for e condicionais:

Comparando valores em lista diferentes

Também é possível verificar se valores de uma lista estão em outra. Por exemplo:

Loop While

O loop while é executado enquanto uma condição permanece sendo verdadeira. Vejamos a sua estrutura básica:

Finalizando um loop através do input

É possível usar o while para solicitar um input específico. Por exemplo até que um usuário digite uma informação corretamente. Vamos fazer um código que pergunte a soma de 2+2 e execute até receber a resposta correta:

Break e Continue

O break serve para interromper o código quando determinado valor for encontrado. O continue serve para pular determinado valor. Vejamos:

Utilizando o break para fazer a mesma coisa do exemplo anterior, interromper o loop quando determinado valor for recebido:

Agora vamos gerar uma lista de números ímpares menores que 10 usando continue:

Dicionários

Estrutura

Dicionários são coleções de valores associados, esses valores são chamados respectivamente de chave e valor e podem ser números, strings, listas e até mesmo outros dicionários. Para criar uma lista usamos [ ‘item1’, ‘item2’, ‘item3’], para criar um dicionário usamos {‘chave1’:’valor1’ , ‘chave2’: ‘valor2’…}. Vejamos um dicionário básico:

Exibindo valores

Vamos tomar como base um exemplo mais realista criando um dicionário com as informações sobre uma HQ, nesse caso Batman o Cavaleiro das Trevas. Criamos as chaves e seus valores associados. Em seguida podemos exibir todo o dicionário ou apenas acessar o valor de uma chave específica. Vejamos:

Adicionando

Para adicionar novos valores basta usar o nome do dicionário seguido do nome da chave desejada e atribuir-lhe um valor. Assim:

Eu também poderia começar com um dicionário vazio e adicionar os valores posteriormente. Dessa forma:

Acessando valores sem saber se eles existem

Sem alguma vez você tentar acessar um valor que não existe, receberá um erro. Para evitar isso utilizamos get(). Ao utilizar o get() passamos a chave do valor que buscamos e uma mensagem que será exibida caso esse valor não exista. Assim:

Apagando

Para apagar determinada chave ou o dicionário todo basta utilizar del:

Dicionários e Loops

É possível exibir todos os itens em um dicionário usando um Loop For. Para isso usamos items(). Dessa forma:

Vamos criar um dicionário com nomes de autores de HQs e exibir seus nomes e obras:

Há ainda a possibilidade de usar um loop para exibir apenas as chaves de um dicionário ou apenas os valores usando respectivamente keys() e values(). Assim:

Criando Listas de Dicionários

Para criar uma lista cujos elementos são dicionários, basta criar cada dicionário individualmente e simplesmente adicioná-los à lista. Dessa forma:

Listas dentro de dicionários e dicionários dentro de outros dicionários

Pode-se usar listas como valores dentro de um dicionário:

E até dicionários dentro de dicionários:

--

--

Christian Costa
Data Hackers

“Pelos livros que eu tive acesso minha obrigação é espalhar pro resto”