author = "Peter J Usherwood"

Loops, Declarações de Lógica, Funções e Classes

Loops, funções, e classes compartilham um princípo similar em programação, eles ajudam com repetição.

Os Loops

Loop são o método por iterando através de listas, este ato nos permite para fazer o mesmo código para cada elemento de uma lista.


In [2]:
a = [0,5,10,3,2]

for elemento in a: # 'for' e 'in' são palavres chaves, 'elemento' é só um nome variável dummy.
    print(elemento) # O travessão é muito importante, Python conheça onde um loop existe do travessão de 2 ou 4 espações. 
                    # nota: usando jupyter ou pycharm (ou muitos IDEs) pode usar 'tab' e ele vai traduiz para 4 espações!

# O loop esta fechado aqui porque nós não somos no travessão 
print('\nfechado\n')

# Nós podemos mudar os elementos da lista no loop
i = 0 # Isso vai representar o índice
for elemento in a:
    a[i] = elemento*4
    i = i+1 # Aumentar o índice para corresponder com o 'elemento'
    
print(a)

# Nós podemos escreve um loop que vai fazer o mesmo do loop em cima mas usando:

a = [0,5,10,3,2]

for i in [0,1,2,3,4]:
    a[i] = a[i]*4

print(a)


0
5
10
3
2

fechado

[0, 20, 40, 12, 8]
[0, 20, 40, 12, 8]

Tambêm temos 'while loops', eles executam até uma condicão está satisfeita. Cuida para não fica presa em um while loop infinitivo!


In [4]:
x = 0
while x < 5:
    print(x)
    x = x+1


0
1
2
3
4

As Declarações de Lógica

Estas são expressões começando com 'if' e elas usam lógica para descidir onde o código vai fluxo. Isso significa peças do nosso código talvez não vai executar.

  • A declaração de lógica mais popular é uma 'decleração if'
  • Isso precisa em minimo dois peças, um 'if' e um 'else'
  • O 'if' tem uma decleração onde a resposta é verdade (True) ou falso (False).
  • Dento o 'if' há código que vai executar se a declaração do 'if' está verdade
  • O 'else' não tem uma decleração, ele é por todas as condições quando o 'if' está falso
  • Se a delcaração do 'if' é verdade o código não vai executar o 'else', vai mudar para o fim da decelração de lógical
  • Nós podemos usar terceiro componente, um 'elif (else if)', isso ato como um outro 'if' depois o primeiro 'if' e antés o 'else'
  • O mesmo do 'elif', se um 'if' (ou 'elif') acima excecuta, o 'decleração if' vai terminar e qualquer outros componentes não vai executar (o mesmo se eles estaria verdade)

In [7]:
a = [0,7,10,3,2]

print(a)

i = 0
for e in a:
    if e > 5: # Lê isso como 'Se "e" está maior do que 5, entra'
        a[i] = 1
    elif e < 5: # Lê isso como 'Se a expressão em cima está falso, e "e" está menor que 5, entra'
        a[i] = -1
    elif e == 5: # Aqui '==' significa igual, '=' é usado para atribuir
        a[i] = 0
    else: # Nós precisamos terminar com um 'else' por todos os outros casos
        print('Isso não é possível')
    i = i + 1
    
print(a)
print('\n')

# Aqui o 'elif' não vai executar apensar de ele está verdade porque o primeiro 'if' está verdade assim o código exicuta isso 
# então muda para o fim

b = 14

if (b > 10) and (b < 15):
    print('Verdade')
elif b > 5:
    print('Também está verdade mas este não vai executar pelos números maiores que 10')
else:
    print('Outro')


[0, 7, 10, 3, 2]
[-1, 1, 1, -1, -1]


Verdade

In [8]:
a = 1

if a > 5:
    print('sim')
elif a > 3:
    print('yes')
else:
    print('nao')


nao

As Funções

  • As funçoes são blueprints por código você quer reusar
  • Elas tomam 'entradas', faz o código, então retornam as 'saídas'
  • Elas se comportam como as funções do Excel
  • Nós vimos exemploes das funções antés: print(var). print(var) aceita 'var' de uma entrada, e imprime o valor do 'var' para a tela como uma saída
  • Uma fanção tem dois componentes:
  • A declaração, isso é onde nós escrevemos o blueprint
  • A função chamada, onde nós usamos a função no nosso código. 'print(var)' é um exemplo de uma função chama

In [9]:
# A declaração
def contar_números(lista, número=5):
    """
    Este é o modo padrão para comentar as funções, isso função conta o número de vezes o 'número' aparece na 'lista'
    
    :param litsa: Uma 'list' onde cada elemento é um inteiro, isso entrada é obligatório
    :param número: Um inteiro para estar contado, isso entrada não é obligatório se não 'número' for dado, o valor vai estar 5
    
    return contar_de_número: Um interio pela conta
    """
    
    contar_de_número = 0
    for elemento in lista:
        if elemento == número:
            contar_de_número = contar_de_número + 1
        else:
            pass
        
    return contar_de_número

# O código (com a chama)
minha_lista = [1,4,7,7,3,5,5,7,6,7,7,7,7,7]
meu_número = 7

contar = contar_números(lista=minha_lista, número=meu_número) # Aqui nós damos um 'número' porque nós não queremos 5
print('Há', contar, 'do número', meu_número)
print('\n')


Há 8 do número 7


As Classes

  • As classes são um outro tipo de blueprint.
  • Elas são uma coleção de funções e variáveis que tem um tema comum
  • Nós criamos 'instâncias' da classe, cada instância vai ter as mesmas variáveis e funções, mas valores diferentes pelas variávels

In [10]:
# A declaração
class Cachorro:
    
    def __init__(self, nome, idade):
        """
        A função 'init' vai executar automaticamente quando nós instânciamos a classe, aqui nõs damos os valores por as variáveis
        
        :param nome: Um string pelo nome do cachorro
        :param idade: Um inteiro pela idade do cachorro
        """
        
        self.nome = nome # Variáveis começando com 'self.' são as variávels da classe
        self.idade = idade
        
    def voltar_valores(self): # Funções com o 'self' entrada são as funçõoes da classe, elas podem usar todas as variáveis 
                              # da classe
        
        print('O nome do cachorro é:', self.nome)
        print('A idade do cachorro é:', self.idade)
        
    def late(self):
        
        print('woof')

# O código (com as instáncias)
jasper = Cachorro(nome='Jasper', idade=10)
luke = Cachorro(nome='Luke', idade=7)

# Eles tem os mesmos funções
jasper.late()
luke.late()
print('\n')

# Mas valores diferentes
jasper.voltar_valores()
luke.voltar_valores()
print('\n')

# Acesso variávels
jasper.idade = 11 # Feliz aniversário
print(jasper.nome, 'tem', jasper.idade, 'anos')
print('\n')


woof
woof


O nome do cachorro é: Jasper
A idade do cachorro é: 10
O nome do cachorro é: Luke
A idade do cachorro é: 7


Jasper tem 11 anos



In [ ]: