Python para iniciantes absolutos – uma cartilha rápida

Um rápido resumo sobre o Python para aprender sobre os dados da ciência

Fathima Mashood Blocked Desbloquear Seguir Seguindo 31 de dezembro de 2018

Em 1989, o programador holandês Guido van Rossum , que atualmente trabalha no Dropbox (anteriormente no Google), inventou o Python. Não foi uma língua popular até recentemente. A popularidade disparou exponencialmente devido à sua adoção de projetos de aprendizado de máquina e à disponibilidade de muitas bibliotecas.

O Python é uma habilidade essencial que todo cientista de dados deve possuir para se destacar na exploração, extração, análise e visualização de dados.

O bom é que não é difícil aprender. Na verdade, o Python é uma das linguagens mais fáceis de aprender e usar, desde que você esteja familiarizado com os blocos básicos de construção de qualquer linguagem de programação.

Neste post, fornecemos uma abordagem fácil para acompanhar o Python. Não assumimos nenhum conhecimento prévio de programação. Assim, é para principiantes absolutos. Neste tutorial, observamos os blocos de construção, como variáveis, funções, loops, condições e assim por diante, para familiarizá-lo com os conceitos básicos da programação. No final deste post, passamos por algumas das estruturas de dados populares e poderosas do Python que ajudam você a armazenar e processar dados de maneira eficiente.

Python é uma linguagem interpretada. (FYI, C / C ++ são linguagens compiladas.)
Depois de escrever seu código, o compilador começará a executá-lo linha por linha a partir do topo do arquivo.

Como pode escrever e executar os programas neste tutorial? – Você pode copiar e colar esses códigos em um bloco de anotações gratuito do Python, como o Google Colab . É um ambiente Python pronto que você pode usá-lo como seu playground. Outra opção é instalar o python e usar o shell interativo digitando python no terminal ou no prompt de comando.

Escreva seu próprio código!

Nós acreditamos em aprender fazendo. Portanto, nós encorajamos você a brincar com os trechos de código para ter uma boa noção deles. Copie-os, modifique-os, adicione mais linhas e você entenderá e se lembrará mais disso.

Quais são as versões mais populares do Python? – Python tem duas versões principais: 2 e 3. Nós encorajamos você a usar a versão 3 como ela já existe há algum tempo e tem o suporte para a maioria das bibliotecas Python por aí.

Suficiente batendo no mato. Vamos começar.

O primeiro programa

Primeiro programa em Python

A linha 1 e 2 são comentários do Python. Os comentários do Python são escritos com um sinal # na frente deles. Comentários não são executados pelo compilador; eles são para sua referência para que você possa entender seu código mais tarde e também por outros.

A linha 3 é a carne real deste primeiro programa. Ele diz ao computador para imprimir “Hello World!” Na tela do seu computador. Quando você executar o programa acima, você verá a seguinte saída:

Saída do primeiro programa

print é uma função built-in definido Python. Estaremos usando print e muitas outras funções internas do Python para facilitar nossas vidas.

Estilos de Programação

Antes de prosseguirmos, queremos dar a você uma ideia de como você pode escrever programas em Python. Existem três maneiras principais de escrever códigos Python.

  1. Não estruturado
  2. Procedural
  3. Orientado a Objeto

Na programação não estruturada , você escreve o código como um grande arquivo monolítico. É desencorajado usar esse estilo de escrita para programas grandes, pois é muito difícil de gerenciar. No entanto, para pequenos trechos de código, como o que vamos fazer neste tutorial, é uma maneira conveniente de escrever programas.

Na programação procedural , agrupamos o código em unidades funcionais chamadas funções. Há duas etapas envolvidas aqui:

  • Definir (gravar) a função
  • Invoque (chame) a função

Você escreve uma função uma vez e invoca o tempo que quiser para executá-la. Neste post, iremos principalmente usar estilos de codificação não estruturados e procedurais.

Na programação orientada a objetos , você identifica os blueprints e cria o que é chamado de classe para cada blueprint. Vamos explorar a programação orientada a objetos no Python em um post posterior.

Não se preocupe se a descrição acima parecer complicada. É só para definir o palco. Você entenderá melhor à medida que prosseguirmos.

Variáveis

Variáveis são espaços reservados na memória que você pode armazenar dados diferentes.

A partir dos tipos de dados básicos, você pode ter variáveis numéricas (por exemplo, inteiras ou flutuantes) ou de string. Dependendo do tipo da variável (ou cadeia de caracteres ou numérica), o Python aloca diferentes quantidades de memória.

Ao contrário das linguagens de programação como C, C ++ ou Java, você não especifica um tipo de dados ao criar uma variável; O Python infere automaticamente o tipo para você. Portanto, o Python é chamado de linguagem tipada dinamicamente . É bom saber um jargão como esse para impressionar os outros 🙂

Supondo que você tenha instalado o Python 3 no seu computador, você pode executar a codificação interativa abrindo um shell (no Prompt de Comando do Windows e no terminal MAC), digitando python .

Isso levará você aqui. [Desde que instalei várias versões do python, invoco o Python 3 digitando python3.6]

 $ python3.6 
Python 3.6.1 (v3.6.1: 69c0db5050, 21 de março de 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (ponto 3)] em darwin
Digite "help", "copyright", "credits" ou "license" para mais informações.
>>>

Agora vamos usar esse shell para explorar variáveis. (você pode usar um bloco de anotações do Python)

 variável #integer 
>>> x = 25
>>> print (x)
25

Variável x armazena o valor 25. Como 25 é um inteiro, o Python infere que a variável x é do tipo inteiro (int para curto).

 variável #string 
>>> name = "Alice"
>>> print (nome)
Alice

Variável chamada nome armazena o valor "Alice". Como “Alice” é uma string, o Python infere que a variável “name” é do tipo string.

 #atribuindo várias vezes 
>>> x = 25
>>> x = 10
>>> print (x)
10

Quando você atribui valores de variáveis várias vezes, os valores mais antigos são substituídos pelos valores mais recentes. No exemplo acima, o valor 25 é substituído por 10. Há apenas um valor de espaço reservado para x em todos os momentos.

Números e Strings

Além de inteiros, o Python suporta outros tipos de dados numéricos, como números de ponto flutuante. Por exemplo,

 #Números de ponto flutuante 
>>> z = 1,53
>>> print (z)
1,53

As variáveis numéricas suportam operações matemáticas padrão, como adição, subtração, multiplicação, divisão e módulo.

 # Operações numéricas 
>>> a = 10
>>> b = 20
 #Adição 
>>> print (a + b)
30
 #subtração 
>>> imprimir (ab)
-10
 #divisão 
>>> imprimir (a / b)
0,5
 #módulo 
>>> imprimir (b% a)
0

Q. Como você faz a multiplicação de a e b?

Q. Diga que temos outra variável c. Seu valor é 30. Como você adiciona todos os três valores de variáveis em uma instrução?

Agora vamos passar para as cordas.

 #define string variable firstname e atribua valor "Tim" 
>>> firstname = "Tim"
 #print string 
>>> print (nome próprio)
Tim
 #print o primeiro caractere da variável de string 
>>> print (nome próprio [0])
T
 #print o segundo caractere da variável string 
>>> print (nome próprio [1])
Eu
 #print o comprimento da string 
>>> print (len (nome))
3
 #print o primeiro e segundo caracteres 
>>> print (nome [0: 2])
Ti
 #print o segundo e terceiro caracteres 
>>> print (nome [1: 3])
Eu estou

Observe que uma string age como uma matriz de caracteres. Uma matriz é uma estrutura de dados que pode conter vários valores do mesmo tipo.

Neste exemplo, firstname é uma matriz de caracteres. Ele contém três caracteres: T, i e m. Observe que o índice começa em 0 (não 1!). Portanto, o primeiro elemento da matriz é firstname[0] .

Mais operações de string:

 Concatenação #string (combinando strings) 
>>> lastname = "Cook"
>>> fullname = firstname + "" + lastname
>>> print (nome completo)
Tim cook

Observe que a variável fullname é a concatenação de três strings – duas variáveis firstname e lastname e uma string constante ““.

P. O que acontece se removermos a string constante da variável fullname acima?

Q. Defina uma variável para armazenar “Hello World!”. Como você imprimiria apenas "Hello" dessa variável?

Funções

Uma função é um bloco de código organizado, que pode ser usado repetidamente, simplesmente invocando-o pelo seu nome. Com ou sem o seu conhecimento, já usamos algumas funções integradas que vêm com o Python.

print() – função de impressão, leva um argumento e simplesmente imprime o argumento passado para a tela. Por exemplo print (firstname) – imprime o valor da variável firstname.

len() – len função, leva um argumento, uma lista / matriz e gera o número de elementos na lista. Lembre-se de string é uma matriz e a função len retorna o número de caracteres na string. Eg len (firstname) – retorna o tamanho da string de primeiro nome.

Sintaxe de uma função:

 def function_name (argumentos): 
<corpo da função>

def é uma palavra-chave que diz que você está definindo uma função.

function_name – você define isso, geralmente o nome reflete o que a função faz. Por exemplo, a função calculate_tax provavelmente terá a lógica de negócios para calcular o imposto.

argumentos – estes são parâmetros de entrada; uma função pode levar zero ou mais argumentos. Por exemplo, len() recebe 1 argumento.

function_body – estas são instruções python regulares – observe que elas devem ser criadas a partir do nome da função para que o Python saiba que o código pertence à função.

Uma função pode ou não retornar um valor. Por exemplo, a função len() retorna o comprimento do parâmetro de entrada enquanto print() função print() não retorna nada; Ele simplesmente imprime o parâmetro de entrada na tela.

O código acima define uma função simples chamada add . Leva dois argumentos x e y .

No corpo da função (linhas 3), calculamos a adição dos dois argumentos de entrada. Como é uma operação matemática, a função espera parâmetros numéricos de entrada.

Na linha 4, retornamos o valor computado. Observe que o return é uma palavra reservada do Python especificamente para retornar um valor de uma função.

Na linha 7, usamos a função passando 10 e 20 como argumento de entrada.

A linha 8 imprime o resultado de 30.

Na linha 11, reutilizamos a função passando diferentes argumentos de 5 e 9. Desta vez, ela imprime 14.

P: Você pode escrever uma função chamada sub que recebe dois argumentos e retorna a subtração dos dois argumentos?

Como mencionado anteriormente, gostaríamos de reiterar o fato de que uma função nem sempre retorna um valor.

Chamando a função acima no prompt interativo do python:

 >>> foo () 
Esta função não retorna nenhum valor

Observe que simplesmente imprime algo na tela. A impressão na tela não está retornando. Deve haver uma declaração de retorno na função para retornar algo dela.

Condições

Quando você usa condições, você toma uma decisão entre dois caminhos de código.

bloco de controle if-else

Como mostrado no diagrama acima, se a condição for true , o Python executará o bloco “if code”, caso contrário, executará o bloco “else code”.

O trecho de código acima também usa outro constructo de linguagem que já aprendemos – funções.

Então nós temos:

 função 
|
| ________ bloco if-else dentro da função

Você consegue adivinhar o que aconteceria se você ligasse, test_condition(1) ?

 >>> test_condition (1) 
SUCESSO

A função acima tem um bloco de código if-else. Se x for igual a 1, imprime “SUCESSO”, caso contrário “FALHAU”.

A condição é chamada de expressão booleana . Isso é porque ele é avaliado como True ou False .

Se True , se o bloco for executado.

Se False , else-block é executado.

Agora, o que aconteceria se a chamada test_condition(5) ?

Sim, você adivinhou certo, ele imprime com falha.

 >>> test_condition (5) 
FALHA

Algumas condições de exemplo (expressões booleanas):

x == y ? verifica se o valor de x é igual ao valor y

x > y ? verifique se x é ótimo que y

name == “Tim” ? verifica se o nome é igual a Tim

len(name) == 5 ? verifique se o tamanho da variável de nome é 5

Q. Escreva uma expressão booleana para verificar se x é menor que y.

rotações

Em um programa Python, geralmente o código é executado sequencialmente de cima para baixo. No entanto, se você quiser executar um bloco de código repetidamente, será necessário usar um loop.

Existem dois tipos principais de loops:

  • While loops
  • For loops

Vamos dar uma olhada em cada um deles

While loops : Tem a seguinte sintaxe:

 while (condição): 
bloco de código

Enquanto a condition é True , o bloco de código é executado repetidamente.

Vamos ver um exemplo:

 x = 0 
enquanto x <5:
x = x + 1
impressão (x)

Você consegue adivinhar a saída do trecho de código acima?

A condição é x <5 – contanto que x seja menor que 5, a condição é True e, portanto, o Python executa o bloco de código dentro do loop while.

Quando o controle entra pela primeira vez no loop while, x é 0, a condição é satisfeita. A primeira linha no bloco de códigos while incrementa o valor de x por 1 (assim, torna-se 1). Em seguida, imprime x (que é 1).

Agora o controle retorna ao início do loop while. Python avalia a condição. Agora x é 1. Como 1 é menor que 5, a condição é satisfeita.

Em seguida, novamente aumenta o valor em 1 – então agora x é 2.

Em seguida, imprime o valor 2.

Continua assim. Em algum ponto, dentro do loop while, x é incrementado para 5. Ele imprime 5 dentro do loop. Então, volta ao topo do loop while. Agora x é 5, 5 não é menor que 5, a condição não é satisfeita e o Python não executa mais o loop while.

Então, a saída é:

 1 
2
3
4
5

Você consegue adivinhar a saída do código a seguir?

 x = 10 
enquanto x> 0:
impressão (x)
x = x - 2

Dica: imprime 5 números.

Para loops :

Existe outro tipo popular de loop chamado “loop”. A sintaxe do loop for é a seguinte:

 para <a collection value> em <some collection>: 
bloco de código

Não se preocupe se você não entender o que está escrito acima, vamos entender isso através de um exemplo.

Antes, gostaria de apresentá-lo ao intervalo de funções internas do Python. range() cria uma seqüência de números. Vamos ver alguns exemplos.

 intervalo (1, 5) 

Isso cria a sequência de 1, 2, 3 e 4 (observe que 5 é excluído).

Outro exemplo:

 intervalo (0, 10, 2) 

O terceiro parâmetro é o tamanho do passo. O tamanho padrão do passo é 1. Isso imprime 0, 2, 4, 6 e 8.

Podemos usar isso para escrever o mesmo loop while que escrevemos anteriormente usando loop for.

 para x no intervalo (1, 6): 
impressão (x)

Para o segundo exemplo de loop while:

 para x no intervalo (10, 0, -2): 
impressão (x)

O for-loop é freqüentemente usado para fazer coisas muito mais legais em Python. Vamos explorar alguns mais adiante neste tutorial.

Bibliotecas

Bibliotecas fornecem funcionalidade que você pode usar fora da caixa. Na verdade, o Python se tornou tão popular recentemente, principalmente devido à disponibilidade de um grande número de bibliotecas. Você nomeia o que você quer fazer – aposto que existe uma biblioteca Python por aí que facilita sua vida.

Por exemplo, digamos que você queira ler argumentos de linha de comando. Existe uma biblioteca padrão chamada sys que ajuda você a fazer isso.

Primeiro, você precisa import a biblioteca para o seu programa e depois usar suas funções. Suponha que você esteja criando um arquivo chamado first.py e deseja imprimir o que é passado como o primeiro argumento de linha de comando.

 import sys 
 first_argument = sys.argv [1] 
print (primeiro_argumento)

Agora você executa este programa da seguinte maneira:

 python first.py Olá 

sys.argv[1] armazena o valor do primeiro argumento, que é “Hello”. Então, seu programa irá imprimir Hello na tela.

Ao se familiarizar com o Python, você se tornará amigo de muitas bibliotecas python, como pandas , matplotlib , numpy , scikit-learn e assim por diante.

Agora vamos escrever um programa para pegar dois argumentos de linha de comando: second.py

 import sys 
first_argument = sys.argv [1]
second_argument = sys.argv [2]
print ("{} {}". format (first_argument, second_argument))

Agora você está executando o código da seguinte maneira:

 python second.py Olá, mundo! 

Algum palpite sobre a saída? Sim você está certo; ele imprime “Hello World!” na tela. O primeiro argumento é “Olá” e o segundo argumento é “Mundo!”.

Estruturas de Dados: List

Uma lista do Python contém uma lista de valores – pode ser de um tipo diferente. Por exemplo, valores inteiros e de string juntos. Você pode adicionar ou remover itens da lista depois de criá-los.

Exemplos:

 # Uma lista com valores 
names = ["Alice", "Bob", "Eve", "Tim", "Malory"]

Você pode criar uma lista vazia da seguinte maneira:

 names = list () 

Anexar a uma lista, que adiciona o novo item ao final da lista.

 names.append ("Thomas") 
names.append ("Mary")
imprimir (nomes)

A saída é:

 ["Thomas", "Mary"] 

Iterar através de uma lista:

 names = ["Thomas", "Mary", "Tim"] 
para nome nos nomes:
print ("Aluno: {}". format (name))

A saída é:

 Aluno: Thomas 
Aluno: Maria
Aluno: Tim

Observe como escrevemos o loop for. O loop escolhe cada item e o atribui à variável chamada “name” e você pode usar essa variável dentro do loop para escrever sua lógica de negócios (neste caso, simplesmente imprimindo na tela).

Outro exemplo:

 # Uma lista de números 
idades = [25, 30, 22, 26, 32, 35, 31, 22, 27]

Como podemos calcular a idade média?

Precisamos somar todos os valores e dividir pelo número de entradas. Podemos obter o número de entradas da função len(ages) .

 count = len (idades) 
soma = 0
para a idade em idades:
soma = soma + idade
avg = sum / count
print ("Idade média é {}". format (avg))

A saída é

 A idade média é 27,77777777777778 

Deixe-me usar o seguinte trecho de código (igual ao acima, mas com números de linha) para explicar o que está acontecendo aqui.

Linha 1: definimos uma lista chamada idades e inicializamos com todos os valores de idade.

Linha 2: Conte o número de entradas nas idades da lista e armazene na variável chamada count . len é uma função interna do Python.

Linha 3: Inicialize uma variável chamada sum para zero. Vamos usar essa variável para somar todos os valores de idade.

Linha 4: Para o código do cabeçalho do loop – selecionamos cada entrada das idades e atribuímos à variável chamada age .

Linha 5: Adicione o valor atual da age à sum variável em cada iteração

Linha 6: Agora estamos fora do loop for. Nós simplesmente pegamos a média.

Linha 7: Imprima a média para a tela.

P. Você pode escrever um loop for para encontrar a idade máxima?

Estruturas de Dados: Set

Um Set Python é muito semelhante ao List, exceto que um conjunto pode conter apenas valores únicos, sem duplicatas, como nas listas.

 # conjunto com valores iniciais 
coin_sides = {"Head", "Tail"}
 # um conjunto vazio 
colors = set ()

Definir e listar lado a lado:

 >>> myset = set () 
>>> mylist = list ()
 >>> myset.add ("Apple") 
>>> mylist.append ("Apple")
 >>> print (myset) 
{'Maçã'}
 >>> print (mylist) 
['Maçã']

O que aconteceria se adicionássemos “Apple” novamente a ambos? Qualquer suposição?

 >>> myset.add ("Apple") 
>>> mylist.append ("Apple")
>>> print (myset)
{'Maçã'}
>>> print (mylist)
['Apple', 'Apple']

Sim, você teve a idéia – o conjunto mantém apenas uma cópia de cada valor diferente, enquanto a lista mantém todos eles.

 >>> myset.add ("laranja") 
>>> mylist.append ("Orage")
>>> print (myset)
{'Orange', 'Apple'}
>>> print (mylist)
['Apple', 'Apple', 'Orage']

Looping é exatamente semelhante a como você faz o loop de listas:

 para frutas no myset: 
imprimir (fruta)

A saída é:

 laranja 
maçã

Estruturas de Dados: Dicionário

Um dictionary Python é outra estrutura de dados popular que permite armazenar pares de valores-chave.

 alunos = {"Alice": 10, "Tim": 5} 

students é um dicionário Python com duas entradas. As chaves são “Alice” e “Tim” e os valores são 10 e 5.

Outra maneira de criar o dicionário:

 estudantes = dict () 
alunos ["Alice"] = 10
alunos ["Tim"] = 5

Como iterar um dicionário:

 para key, value em students.items (): 
print ("Key = {} Value = {}". format (chave, valor))

Você obtém a seguinte saída:

 Chave = valor de Alice = 10 
Chave = valor de Tim = 5

Outra maneira de iterar um dicionário (note que este método é menos eficiente comparado ao acima, tão desencorajado)

 para chave em estudantes: 
print (formato "Key = {} Value = {}". (chave, alunos [chave]))

Você obtém a mesma saída acima.

Arquivo I / O

Como cientista de dados, você lê e escreve em arquivos com bastante frequência. Vamos mostrar as operações básicas de arquivos agora.

Digamos que tenhamos um arquivo chamado “data.csv” e tenha os seguintes valores separados por vírgula:

 Alice, 10 
Tim, 5
Maria 8

Linha 1: arquivo aberto chamado “data.csv” para leitura (“r” é para leitura)

Linha 3: Iterar através de cada linha no arquivo – cada linha é copiada para a variável chamada “linha”

Linha 4: split o valor na variável de linha por “,” – isso cria uma matriz de dois elementos; nós armazenamos essa matriz na variável chamada valores

Linha 5: Imprimimos os dois valores

Linha 7: fechamos o arquivo.

A saída é a seguinte:

 Nome = Alice Idade = 10 
Nome = Tim Age = 5
Nome = Maria Idade = 8

O seguinte é outra maneira de escrever o mesmo código usando a palavra-chave “com”. Observe que não chamamos close () neste caso.

Agora vamos escrever em um arquivo. Digamos que queremos gravar o conteúdo a seguir em um arquivo.

 maçã 
laranja
Uva

Linha 1: Mantemos o conteúdo que queremos escrever em uma lista chamada frutas.

Linha 3: Abra o arquivo chamado “fruits.txt” para gravação. "W" é para escrever.

Linha 5: Faça um loop em cada uma das frutas na lista de frutas.

Linha 6: Escreva cada fruta. Observe que adicionamos um novo caractere de linha “ n” a cada gravação para garantir que cada fruta seja gravada em uma nova linha.

Linha 8: Depois que terminamos de escrever, fora do loop, fechamos o arquivo.

Isso é tudo por hoje. Esperamos que você tenha gostado do nosso artigo e aprendido o básico do python.

É importante que você pratique escrever seu próprio código para entender o Python (ou qualquer outra linguagem de programação).

Com esse conhecimento básico, esperamos que você possa entender vários trechos de código disponíveis na Internet.

Codificação Feliz!

Referências