Logo Saci
Projeto Programando o Futuro
Programação para Iniciantes (Blockly+Python)
registrar
login
Aula 14 - Introdução a listas
Avalie esta aula
 
Avalie esta revisão

Listas

Usamos listas cotidianamente: listas de compras, listas de tarefas a cumprir, listas de ingredientes de uma receita, lista dos vídeos mais vistos na Internet, lista das músicas mais tocadas, etc.

Listas são muito importantes também em Python e em linguagens de programação em geral.

Em Python uma lista é uma coleção de valores organizados em uma sequência. Em Python, podemos ter uma lista de números

10113471821

ou uma lista de cadeias de caracteres

Sílvio SousaBeatriz SilvaFrancisco Buarque

ou uma lista com números e cadeias de caracteres misturados:

Zé da Venda235Maria Rosa230

Duas propriedades de listas são importantes em Python. Uma propriedade é que os itens de uma lista são organizados em uma sequência, e nos referimos ao primeiro item da lista, segundo item da lista e assim por diante:

Outra propriedade é que podemos atribuir uma lista a uma variável. Assim, podemos armazenar em uma única variável uma "coleção de valores", como nomes e respectivos números de telefones, ou nomes de times e dados referentes a um campeonato, como partidas jogadas, pontos ganhos, gols marcados, etc.

A Barra de Ferramentas inclui um menu Listas com blocos para manipulação de listas em Python. Inicialmente vamos ver dois blocos, para criar uma lista e adicionar itens a uma lista.

O bloco crie lista vazia

O bloco crie lista vazia como o nome indica, cria uma lista vazia, ou seja, uma lista que não tem nenhum item:

Esse bloco é usado para inicializar uma variável que vai conter uma lista, como no exemplo abaxo, em que uma variável de nome "jogadores" é inicializada com uma lista vazia:

O bloco acrescente na lista

O bloco acrescente na lista é usado para incluir um novo item em uma lista.

Esse bloco tem dois espaços vazios: o primeiro é para indicarmos em qual lista queremos acrescentar o item, o segundo espaço vazio é para indicarmos o valor do item a ser acrescentado.

Considere o programa abaixo, que cria uma lista usando uma variável de nome lista

Quando executado, esse trecho de programa produz:

['A', 'B', 12]

Note como o computador escreve a lista na saída: os itens da lista dentro de um par de colchetes, as cadeias de caracteres dentro de um par de aspas simples, e os itens separados por vírgulas.

Veja agora o programa acima na linguagem Python (não precisa entender o programa em Python, o exemplo é apenas para você ter uma ideia da linguagem Python; mais adiante no curso vamos ver os comandos em Python em detalhes):

lista = []
lista.append('A')
lista.append('B')
lista.append(12)
print(lista)

Na próxima aula vamos aprender como consultar e alterar os itens de uma lista individualmente.

O bloco Leia Linha

O bloco Leia linha está disponível no menu Entrada e Saída da Barra de Ferramentas:

Como o nome indica, ele é usado para ler uma linha inteira da entrada. Ele tem como resultado uma cadeia de caracteres e pode ser usado por exemplo para ler um nome, como Maria Clara, ou um número de telefone, como (11) 5432-1234.

Para ilustrar, vamos usar o bloco Leia linha com uma variável de nome linha e vamos imprimir o valor da variável linha linha para duas entradas diferentes.

Entrada Saída
Maria Clara
Maria Clara

Note que a variável linha nesse caso tem como valor a cadeia de caracteres "Maria Clara". Observe agora o mesmo programa para esta outra entrada:

Entrada Saída
1234
1234

A variável linha nesse caso tem como valor a cadeia de caracteres "1234", e não o número mil duzentos e trinta e quatro!

Para ficar mais claro, vamos tentar usar um bloco aritmético com a variável linha:

Entrada Saída
1234
Erro!

Ocorre um erro! Isto porque a variável linha contém uma cadeia de caracteres e não um número, e o computador não consegue adicionar um valor inteiro a uma cadeia de caracteres. Internamente, números e cadeias de caracteres são armazenados de forma diferente pelo computador.

Ou seja, se quisermos ler um número da entrada, devemos utilizar o bloco Leia número:

Entrada Saída
1234
1235

Recorde que o bloco Leia número exige que a linha da entrada contenha somente um número; mais adiante no curso veremos como ler uma linha que contém mais de um número.

 

 

Entrada
Saída
Avalie este desafio

Lista de Honra

A profa. Vilma quer fazer um pequeno cartaz comemorativo com os nomes e notas dos alunos que conseguiram 80 ou mais pontos na Olimpíada Científica da escola.

Dada uma lista com os nomes e pontuações dos alunos, seu programa deve produzir na saída uma lista de nomes e pontos dos alunos que conseguiram 80 ou mais pontos.

Entrada

A primeira linha da entrada contém um inteiro N, o número de alunos participantes. A seguir a entrada contém o nome e a pontuação dos N participantes, alternando uma linha com o nome de um participante e uma linha com a respectiva pontuação.

Saída

Seu programa deve escrever na saída a representação de uma lista, no formato usado por Python, com os nomes e pontuações dos participantes que conseguiram 80 ou mais pontos. A lista deve ser formada por uma sequência composta pelos nomes seguidos da respectiva pontuação (veja os exemplos).

Restrições

  • 1 ≤ N ≤ 100
  • 0 ≤ pontuação de cada aluno ≤ 100
  • nome de cada aluno é composto por no mínimo um e no máximo 50 caracteres, entre espaços em branco e letras maiúsculas e minúsculas, sem acento, e nunca inicia ou termina com espaço em branco.

Exemplos

Entrada
3
Maria Clara Silva
83
Pedro Henrique Souza
79
Carlos Eduardo Santos
80
Saída
['Maria Clara Silva', 83, 'Carlos Eduardo Santos', 80]

Entrada
1
Paula Oliveira
91
Saída
['Paula Oliveira', 91]

Entrada
2
Leila Santana
79
Francisco Duarte
77
Saída
[]

 

Solução

Aqui você encontra um exemplo de solução para o desafio. Mas antes de ver a solução tente resolvê-lo, criando a sua própria solução.

Solução do Desafio
Solução do Desafio

Vamos inicialmente ler a quantidade de alunos e criar uma lista vazia, que atribuiremos a uma variável de nome lista_de_honra. Então usamos um laço de repetição. A cada passo da repetição lemos duas linhas, a primeira com o nome e a segunda com a nota de um aluno. Se a nota é maior ou igual a 80, adicionamos o nome e a nota na variável lista_de_honra. Ao final, imprimimos o valor da variável lista_de_honra.

Blockly

Python

# Solução do Desafio da Aula 14

N = int(input())
lista_de_honra = []
for count in range(int(N)):
    nome = input()
    num = int(input())
    if num >= 80:
        lista_de_honra.append(nome)
        lista_de_honra.append(num)
print(lista)