Melhores momentos e reunião de 22/06

Melhores momentos e reunião de 22/06

por Jose Coelho de Pina Junior -
Número de respostas: 0

Salve,

Para a nossa reunião de amanhã, dia 22/06 de madrugada, por favor, procurem rever:

Procurem ainda lembrar que:

  • variáveis são apelidos/nomes que damos a coisas que necessitaremos mais tarde
  • atribuições apenas definem ou modificam apelidos, não criam coisas

Esses observações serão absolutamente cruciais no restante de MAC0110 e do início ao fim de MAC0122 e para sempre.

Por fim, na seção Exercícios da página de MAC0110 há exercícios que tratam de listas.

até amanhã,
hitoshi e coelho


Aqui vai um resumo do que vimos de novo na semana passada

Compacto dos melhores momentos das últimas reuniões

Tratamos de listas, coisas que são tipo list. Listas em computação são coisas que em matemática as pessoas chamariam de sequências finitas. Até agora vimos em Python coisas dos tipos abaixo

tipoexemplos de valores
str “Bom dia!”, ‘Como é bom estudar MAC0110!’
int …, -3, -2, -1, 0, 1, 2, 3,…
float 3.1415926, 2.718281828459045, 1e-6
bool True e False
NoneType None
list [-1, 2, 14], [True, None, ‘oi’, 3.14, 14]

Criar uma lista

   # criar uma lista com  2, 3, 5, 7, 11, 13
   alguns_primos =   [2, 3, 5, 7, 11, 13]

   # criar a lista [0, 1, 2, ..., n-1] com operador + 
   crescente = [] # lista vazia
   i = 0
   while i < n:
       crescente = crescente + [i] # operador concatenação
       i += 1

   # criar uma lista n uns com operador *
   uns = n * [1] # o mesmo que [1] + [1] + ... + [1] n vezes

   # criar uma lista k zeros
   zeros = [0] * k # o mesmo que [0] + [0] + ... + [0] k vezes

   # criar a lista [n-1, n-2, n-3, ..., 1, 0] com operador + 
   decrescente = []
   i = 0
   while i < n:
       decrescente = [i] + descrescente # operador concatenação
       i += 1

Comprimento de uma lista

A função len() nos fornece o número de elementos de uma lista. Usando a listas criadas anteriormente.

    x = len([])           # x é apelido para 0
    a = len(alguns_primo) # a é apelido para 6
    b = len(crescente)    # b é apelido como n
    c = len(uns)          # c é apelido como n
    d = len(zeros)        # d é apelido como k
    e = len(decrescente)  # e é apelido como n

Acessar os elementos de uma lista

Lembre-se que variáveis são nomes ou apelidos que damos a valores. Um mesmo valor por ter vários apelidos:

    i = 27
    j = i

Agora 27 pode ser chamado de 27, i ou j.

Podemos usar o operador indexação [] para acessar os elementos de uma lista. Em matemática as pessoas usam índices subscritos x0, x1, x27. Em Python escrevemos x[0], x[1], x[27]. O índice do primeiro elemento de uma lista é zero.

Considere a lista

    lst = [True, 5, [2, None], 3.14]

Ums ilustração dessa lista é

                    lst[1]   lst[2][0]     lst[3]
                      |           |          |
                      |   +-------+  +-------+
                      |   |          |
                      V   V          V
       lst --> [True, 5, [2, None], 3.14]
                 A          A  A
                 |          |  |
                 |          |  +---------+
                 |          |            |
               lst[0]     lst[2]    lst[2][1]

      len(lista)    = 4
      len(lista[2]) = 2

Temos que

    lst[0]    # é True
    lst[1]    # é apelido para 5
    lst[2]    # é apelido para [2, None]
    lst[3]    # é apelido para 3.14
    lst[4]    # ERRO
    lst[2][0] # é apelido para 2
    lst[2][1] # é apelido para None
    lst[3][0] # ERRO

Comando for ... in range(inicio, fim, passo)

    var = início
    while var < fim:
        | 
        |  executa bloco com var = início, início+passo 
        |      início+2*passo,...,... até           
        |      fim (EXCLUSIVE)
        |
        var += passo

tem o mesmo efeito que

    for var in range(início, fim, passo):
        |
        |  executa bloco com var = início, início+passo
        |      início+2*passo,...,...  até  
        |      fim (EXCLUSIVE)                         

Percorrer uma lista

    # de 0 a n-1
    n = len(lst)
    i = 0
    while i < n:
        print(f"{lst[i]}", end=" ")
        i += 1

    # de 0 a n-1
    for i in range(0, n, 1): 
        print(f"{lst[i]}", end=" ")
        
    # de n-1 a 0
    n = len(lst)
    i = n-1
    while i > -1:
        print(f"{lst[i]}", end=" ")
        i -= 1

    # de n-1 a 0
    for i in range(n-1, -1, -1): 
        print(f"{lst[i]}", end=" ")


right