Python do Zero I e II

Material para o Live Coding 1, 26/01/2022, referente à semana 13 do curso

O objetivo desse encontro virtual é tirar dúvidas quanto à instalação do Python e do Visual Studio Code e apresentar alguns conceitos básicos de programação.

python


OBS:

Trechos e exemplos foram retirados dos seguintes materiais:

Pq Python?

Python é uma das linguagens de programação que mais crescem no mundo. Aprender Python] é uma ótima escolha pois é uma linguagem:

  • amplamente adotada nas humanidades digitais e ciência de dados;

  • que tem uma curva de aprendizado menor do que outras linguagens;

  • flexível, possuíndo amplo suporte para lidar com dados numéricos e textuais;

  • que lembra o inglês e é legível para quem sabe esse idioma.

Anatomia de um script Python

Adaptado do curso Introduction to Cultural Analytics & Python de Melanie Walsh.

Geralmente, o código escrito em Python para executar alguma função, salvo em um arquivo com a extensão .py, chamdo script possui uma estrutura que segue certo padrão. Ou melhor, possui um conjunto de elementos básicos e lógicos.

Vamos olhar o script abaixo e entender cada trecho.

'''
Esse script pretende ser um exemplo de como se
estrutura um script Python.
'''

# Importando bilbiotecas
import time

# cria variável com o dia e hora atual
now = time.strftime("%d/%m/%Y %H:%M:%S")

#print() é uma função para imprimir um valor na tela
print(now)

# input() é uma função para receber um valor digitado pelo usuário  
name = input("Digite seu nome: ")

print('\nOlá, ' + name + '!')
# fim do script

Terminal

Além de poder executar comandos de Python no Jupyter Notebook, podemos e comumente vamos executar comandos e scripts diretamente através de linhas de comando no terminal.

python3 <nome-do-script>.py

Ou ainda, você pode acessar o python em seu terminal e executar comandos de forma interativa executando o comando:

python3

Operadores Aritméticos

Python Basics 1 de Nathan Kelber e Ted Lawless

Operador

Operação

Exemplo

Resultado

**

Potência

3 ** 3

27

%

Resto da divição

34 % 6

4

/

Divisão

30 / 6

5

//

Divisão inteira

27 // 6

4

*

Multiplicação

7 * 8

56

-

Subtração

18 - 4

14

+

Adição

4 + 3

7

Operadores relacionais

Python Basics 2 de Nathan Kelber e Ted Lawless

Operador

Significado

==

Igual

!=

diferente

<

Menor que

>

Maior que

<=

Menor ou igual que

>=

Maior ou igual que

Operadores Booleanos (and/or/not)

Python Basics 2 de Nathan Kelber e Ted Lawless

and

True and True = True

or

Expressão

Avaliação

True or True

True

True or False

True

False or True

True

False or False

False

Variáveis

Traduzido de Variables Melanie Walsh.

As variáveis são um dos blocos de construção fundamentais do Python. Uma variável é como um pequeno contêiner onde você armazena valores e dados, como nomes de arquivos, palavras, números, coleções de palavras e números e muito mais.

Definindo variáveis

O nome da variável apontará para um valor que você “atribui” a ele. Você pode pensar em atribuição de variável como colocar um valor “dentro” da variável, como se a variável fosse uma pequena caixa 🎁

Você atribui variáveis com um sinal de igual =. Em Python, um único sinal de igual = é o “operador de atribuição”. Um sinal de igual duplo == é o sinal de igual “real”.

# criar uma variável
nome = 'Maria'
#imprimir o valor da variável
print(nome)
2+2 == 4

Nomeando variáveis

Os nomes das variáveis podem ser tão longos ou curtos quanto você quiser e podem incluir:

  • letras maiúsculas e minísculas (A-Z)

  • dígitos (0-9)

  • underscores (_)

No entanto, os nomes das variáveis * não podem * incluir:

  • ❌ outras pontuações (-.!?@)

  • ❌ spaces ( )

  • ❌ uma palavra reservada do Python

Variáveis claras e nomeadas com precisão irão:

  • tornar seu código mais legível (para você e para outras pessoas)

  • reforçar sua compreensão do Python e do que está acontecendo no código

  • esclarecer e fortalecer seu pensamento

Para maiores informações veja o Style Guide for Python Code

Palavras-chave do Python

Retirado de Pense Python de Allen Downey, capítulo 2.

O interpretador usa palavras-chave para reconhecer a estrutura do programa e elas não podem ser usadas como nomes de variável.

O Python 3 tem estas palavras-chave:

and         del         from        None        True
as          elif        global      nonlocal    try
assert      else        if          not         while
break       except      import      or          with
class       False       in          pass        yield
continue    finally     is          raise
def         for         lambda      return

Você não precisa memorizar essa lista. Na maior parte dos ambientes de desenvolvimento, as palavras-chave são exibidas em uma cor diferente; se você tentar usar uma como nome de variável, vai perceber.

Redefinindo variáveis

As variáveis não são fixas, é possível atribuir novos valores a uma varivável que já havia sido definida anteriormente.

nome = 'Eric'
print(nome)

Tipos de Dados

Existem quatro tipos essenciais de dados Python com diferentes poderes e capacidades:

  • Strings (texto)

  • Inteiros (números inteiros)

  • Floats (números decimais)

  • Booleans (verdadeiro / falso)

Tipo

Explicação

Exemplo

integer

número inteiro

-3, 0, 2, 534

float

número decimal

6.3, -19.23, 5.0, 0.01

string

texto

‘Hello world’, ‘1700 butterflies’, ‘’, ‘1823’

boolean

Verdadeiro ou Falso

True/False

Você pode verificar o tipo de dados de qualquer valor usando a função type ().

type(nome)

Material para o Live Coding 2, 02/02/2022, referente à semana 14 do curso

Os objetivos desse encontro virtual são:

  • Tirar dúvidas quanto à instalação e configuração do Visual Studio Code;

  • Manipular strings e listas com Python.

Strings

Uma string é um tipo de dados Python que é tratado como texto, mesmo que contenha um número. As strings são sempre colocadas entre aspas simples 'isto é uma string' ou aspas duplas "isto é uma string".

Segundo Allen Downey:

Strings não são como números inteiros, de ponto flutuante ou booleanos. Uma string é uma sequência, ou seja, uma coleção ordenada de outros valores. (…) Uma string é uma sequência de caracteres.

É possível acessar um caracter específico da string com o operador []

A expressão entre colchetes chama-se índice. O índice aponta qual caractere da sequência você quer


Vamos usar um exemplo que preste

queen bey
music = 'Formation'
music[1]

Opa! o caractere na posição 1 da string music não deveria ser ‘U’?

A contagem de índices no Python começa em 0, ou seja, o primeiro caractere é na posição 0.

A indexação é baseada na distância do ponto de partida e como o primeiro elemento está a uma distância zero do ponto de partida, seu índice é 0.

music[0]

E pra acessar o último elemento da string, você pode usar índices negativos.

music[-1]

len()

len() é uma função que retorna o número de caracteres de uma string.

len(music)
another_music = 'Mood 4 eva'
len(another_music)

Manipulando strings

Fatiamento de strings

Segundo Allen Downey:

O operador [n:m] retorna a parte da string do “enésimo” caractere ao “emésimo” caractere, incluindo o primeiro, mas excluindo o último. Este comportamento é contraintuitivo, porém pode ajudar a imaginar os índices que indicam a parte entre os caracteres.

old_music = 'Crazy in love'
old_music[2:5]
old_music[:5] # se omitir o primeiro número, ele começa no início da string
old_music[3:] # se omitir o último número, a fatia vai até o final da string
old_music[3:3] # Se o primeiro índice for maior ou igual ao segundo, o resultado é uma string vazia, representada por duas aspas
Concatenando strings
nome = 'Beyoncé'
nome_completo = nome + ' ' + 'Knowles'
print(nome_completo)
Métodos de strings
# lower() converte todas as letras para minusculas
nome_completo = nome_completo.lower()
print(nome_completo)
# upper() converte todas as letras para maiusculas
nome_completo = nome_completo.upper()
print(nome_completo)
# replace - substitui uma string por outra
nome_completo = nome_completo.replace('KNOWLES', 'KNOWLES-CARTER')
print(nome_completo)
# split - divide uma string em várias strings
f_name, l_name = nome_completo.split(' ')
print(f_name)
print(l_name)
# find - encontra a posição de uma string dentro de outra
nome_completo.find('KNOWLES')
# rfind - encontra a posição de uma string dentro de outra, mas começa a busca pelo final
nome_completo.rfind('K')
# count - conta quantas vezes uma string aparece dentro de outra
nome_completo.count('E')
# strip - remove os espaços em branco no início e no final da string
movie = ' Lion King             '
movie.strip()

Saiba mais sobre strings

ABZ-Aaron criou um repositório no Github com cheat sheets para os métdoso de strings. Lś você também encontra cheat sheets sobre listas e dicionários.

Veja o repositório.

Listas

Allen Downey define uma lista em Python:

Como uma string, uma lista é uma sequência de valores. Em uma string, os valores são caracteres; em uma lista, eles podem ser de qualquer tipo. Os valores em uma lista são chamados de elementos, ou, algumas vezes, de itens.

Há várias formas para criar uma lista; a mais simples é colocar os elementos entre colchetes ([ e ])

Listas são mutáveis. Podem conter elementos de qualquer tipo.

musics = ['Lemonade', 'Halo', 'Freedom','Flawless']
years = [2000, 2019, 2016, 2013]
empty = []
multi = ['singer', 1.70, ['jay-z', 'blue ivy']]
years[1] = 2016
years
len(musics)

Índices de listas funcionam da mesma forma que os índices de strings

Métodos de listas

# append - adiciona um elemento ao final de uma lista
musics.append('Formation')
# extend toma uma lista como argumento e adiciona todos os elementos
new_songs = ['Crazy in love', 'Hold up']
musics.extend(new_songs)
print(musics)
# sort - ordena uma lista
musics.sort()
musics.sort(reverse=True)
musics.append('Artpop')
print(musics)
#pop - remove um elemento da lista
musics.pop() # remove o ultimo elemento da lista
print(musics)
# del - remove um elemento da lista
del musics[0]
# remove - remove um elemento da lista
musics.remove('Halo')
print(musics)
# transformar uma lista em uma string
# join - separa os elementos da lista com o separador passado
str_musics = ', '.join(musics)
print(str_musics)

Material para o Live Coding 3, 16/02/2022, referente à semana 16 do curso

Os objetivos desse encontro virtual são:

  • Entender os controladores de fluxo em Python;

  • Executar CLI (Command Line Interface) em Python.

Controle de fluxo

Python Basics 2 de Nathan Kelber e Ted Lawless

Tipos de controle de fluxo

Declaração

Significado

Condição de execução

if

se

se a condição for atendida

elif

senão se

se nenhuma condição anterior for atendida e esta condição for atendida

else

senão

se nenhuma condição for atendida (nenhuma condição é fornecida para uma instrução else)

while

enquanto

enquanto a condição for verdadeira

for

para

executar em um loop um quantidade de vezes

try

tentar

tente isso e execute o código except se ocorrer um erro

Criando iterações for

É fundamental entender a estrutura de iteração, realizar um loop com python.

Iterar é a capacidade de executar um bloco de instruções repetidamente.

# utilizar for para percorrer a lista musics
for music in musics:
    length_music = len(music)
    print(f'A música é {music} e ela possui {length_music} letras.\n')
# utilizar range para percorrer um intervalo de valores
for i in range(0, len(musics)):
    print(f'A música é {musics[i]} e ela possui {len(musics[i])} letras.\n')
    
# create a list
list_names = []
# input the names of the students
for i in range(1,6):
    name = input(f'Digite o nome do estudante número {i}: ')
    list_names.append(name)
    
# loop na lista musics e salva cada item em um arquivo txt
for music in musics:
    # abre o arquivo txt
    file = open(music + '.txt', 'w') # w = write
    # escreve o valor usando format
    file.write(str(f'A música é {music} e ela possui {len(music)} letras.\n'))
    file.close() # fecha o arquivo

while

Fluxo de execução para uma instrução while:

  1. Determine se a condição é verdadeira ou falsa.

  2. Se for falsa, saia da instrução while e continue a execução da próxima instrução.

  3. Se a condição for verdadeira, execute o corpo e então volte ao passo 1.

# criar uma lista de uma contagem de 10 até 0
import time
count = 10
while count > 0:
    print(count)
    time.sleep(1)
    count -= 1
print("Ok, Ladies, now let's get in formation!")

if / elif / else

Operações condicionais

number = int(input('Digite um número: '))
if number > 0:
    print('positive')
if number < 0:
    print('negative')
if number == 0:
    print('zero')
if number > 0:
    print(f'o número {number} positivo')
else:
    print(f'o número {number} negativo')
if number > 0:
    print(f'o número {number} positivo')
elif number == 0:
    print(f'o número {number} é zero')
else:
    print(f'o número {number} negativo')

Em breve dados sobre CLI em Python