PYTHON Compreensão de Listas. Introdução à Programação SI2



Documentos relacionados
PYTHON LISTAS. Introdução à Programação SI1

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Exercícios: Vetores e Matrizes

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Lista de Exercícios - Programação I (Pascal/ Python)

Exercícios: Recursão

Estruturas de Repetição

Exercícios: comandos de repetição

Exercícios (if/ if else/ if elseif else)

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

TUTORIAL MATLAB Victor Breder 2016

Exercícios de Fixação Aulas 05 e 06

2ª Lista de Exercícios

Lista 4 Introdução à Programação Entregar até 07/05/2012

PROGRAMAÇÃO DE COMPUTADORES I - BCC Lista de Exercícios do Módulo 1 - Preparação para a Prova 1

Ficheiros binários 1. Ficheiros binários

Estruturas Condicionais e de Repetição

Programação de Computadores I BCC Terceira Avaliação 06/04/2013 Valor (3,0)

17. Faça um programa que escreve na tela a mesma frase 10vezes. E depois faça com que o programa mostre o número de cada linha no início e no final

- no assunto colocar [ALG] PRIMEIRA PARTE

Algoritmos & Programação

AC05 Lista de Exercícios sobre Sequências, Condições e Repetição Em C++

CAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA. Introdução à Programação em C. Algoritmos: Estruturas de Repetição. Prof. Dr. Galeno.J.

Exercícios: variáveis e expressões

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Elabore um algoritmo na Linguagem de Programação do VisuAlg usando a estrutura de repetição PARA que satisfaça as seguintes condições:

Exercícios: Comandos de Repetição

Vetores. Vanessa Braganholo

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

OBSERVAÇÕES: EXERCÍCIOS

Listas e Tuplas. Vanessa Braganholo

Python - Dicionários. Introdução à Programação SI1

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

CURSO DE INFORMÁTICA. Algoritmos. Parte 6. Ricardo José Cabeça de Souza

Comandos de Desvio 1

1 Cálculo do valor à vista

MC Teste de Mesa e Comandos Repetitivos

LISTA DE EXERCÍCIOS PARTE 1 (ESTRUTURAS SEQUENCIAIS)

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Lógica de Programação Módulo I Prof.: Ricardo Lokchin. Fazer os exercícios abaixo na Linguagem C ou em ALGORITMOS.

Polígonos e mosaicos

Controle de Fluxo Comandos de repetição: while e do-while

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Programação para Computação

Manual do sistema SMARam. Módulo Cadastro de Bens Intangíveis

Python 3.x Estrutura de Repetição while

SICLOM Mapa Mensal. 1 Mapa Mensal. Versão: Manual de preenchimento do mapa mensal no SICLOM Gerencial

C A P I T U L O 6 E S T R U T U R A S D E C O N T R O L E D E R E P E T I Ç Ã O

Exercícios: Vetores e Matrizes

LISTA DE EXERCÍCIOS DE PASCAL ALGORITMOS 1 Professor Jorge Leite Estruturas De Decisão 1. Faça um Programa que peça dois números e imprima o maior

Manual do Usuário. Quiz Online

Orientações para inscrição aos cursos de língua inglesa ofertados pelas universidades federais parceiras do Programa IsF

Álgebra Linear Computacional

Admistração de Redes de Computadores (ARC)

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Lista de Exercícios 5

Roteiro da aula. MA091 Matemática básica. Quadrados perfeitos. Raiz quadrada. Aula 8 Raízes. Francisco A. M. Gomes. Março de 2016

Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

Primeiro Passo. Na sequência, surgirá a tela de Login, onde você poderá realizar uma das seguintes tarefas:

4ª Lista de Exercícios de Programação I

MANUAL BÁSICO PARA ACESSO AO PORTAL DE COMPRAS

Vetores, Matrizes e String

Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial

Estrutura de Seleção

Até o momento, vimos que a estrutura de um computador segue uma seqüência: ENTRADA => PROCESSAMENTO => SAÍDA

Como calcular uma rescisão trabalhista

Aula 1 Conjuntos Numéricos

2ª Lista de Exercícios

XXXII Olimpíada Brasileira de Matemática. GABARITO Segunda Fase

LIBREOFFICE: APRESENTAÇÃO COM O IMPRESS. Professor: Francisco Dantas Nobre Neto

5. ESTRUTURA DE CONTROLE TOMADA DE DECISÕES

EXERCÍCIOS: Estrutura Sequencial, IF (SE), ELSE (Senão)

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

CRITÉRIOS GERAIS DE CLASSIFICAÇÃO

FABIANO KLEIN CRITÉRIOS NÃO CLÁSSICOS DE DIVISIBILIDADE

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

TUTORIAL SOBRE O GOOGLE DOCS

INF1005: Programação I. Algoritmos e Pseudocódigo

Medidas de Tendência Central. Introdução Média Aritmética Moda Mediana

Resolva os exercícios utilizando a linguagem de programação C

Ponto Secullum 4 Extras. Para configurar as extras no Ponto Secullum 4 abra a tela Cadastro de Horários e clique no botão Extras:

Primeira Prova de Análise e otimização de Código - DCC888 -

4ª Lista de Exercícios de Programação I

Apostila de EXERCÍCIOS e Respostas Algoritmos e Programação

EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS

Lista de Exercícios 02

CADERNO DE EXERCÍCIOS ALGORITMOS

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

AULA 3 Alocação dinâmica de memória: Ponteiros

Tutorial Autodesk Inventor Sheet Metal

5ª Lista de Exercícios de Programação I

Transcrição:

PYTHON Compreensão de Listas Introdução à Programação SI2

Inicializando listas Não é possível atribuir a uma posição inexistente de uma lista >>> vetor = [] >>> vetor [0] = 1 Traceback (most recent call last): IndexError: list assignment index out of range Se uma lista vai ser usada como vetor, é conveniente iniciála >>> vetor = [0]*10 >>> vetor [0] = 3 >>> vetor [3, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Usando None No uso de estruturas de dados, às vezes é importante preencher uma posição com um valor não válido. A melhor opção para esse uso é emprega o valor especial None Não faz parte de tipo nenhum É melhor que usar 0, [] ou uma string vazia Útil para criar uma lista vazia mas com um número conhecido de posições. Ex.: >>> lista = [None]*5 >>> lista [None, None, None, None, None]

Criando Listas Crie uma lista com inteiros de 0 a 9 elevados ao quadrado squares = [] for x in range(10): squares.append(x**2) print squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Criando Listas Crie uma nova lista com o tamanho de cada nome que pertence a uma dada lista. Como exemplo, use: nomes = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] lengths = [] for name in names: lengths.append(len(name)) print lengths [4, 3, 3, 5, 6, 7, 4]

Criando Listas Crie uma lista com todos os possíveis pares de bebida e comida das listas [ água, chá, suco ] e [ presunto, ovos, queijo ], respectivamente possible_choices = [] for drink in ['water', 'tea', 'juice']: for food in ['ham', 'eggs', 'spam']: possible_choices.append([drink,food]) print possible_choices [['water', 'ham'], ['water', 'eggs'], ['water', 'spam'], ['tea', 'ham'], ['tea', 'eggs'], ['tea', 'spam'], ['juice', 'ham'], ['juice', 'eggs'], ['juice', 'spam']]

Criando Listas Crie uma lista de coordenadas em um grid retangular, no formato (x,y), onde 0 < x < 10 e 0 < y < 15 coords = [] for x in range(5): for y in range(3): coordinate = (x, y) coords.append(coordinate) print coords [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2)]

Filtrando Listas A partir de uma lista existente de nomes, crie uma nova lista contendo apenas os nomes que começam com a letra B: names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] b_names = [] for name in names: if name.startswith('b'): b_names.append(name) print b_names ['Bob', 'Barbara']

Filtrando Listas Crie uma lista com inteiros de 0 a 9, cujo quadrado é maior que 5 e menor que 50 special_squares = [] for x in range(10): square = x**2 if square > 5 and square < 50: special_squares.append(square) print special_squares [9, 16, 25, 36, 49]

Daria pra fazer em uma linha só?

Criando Listas [ x**2 for x in range(10) ]! [ len(name) for name in names ]! [ [drink,food] for drink in ['water', 'tea', 'juice'] for food in ['ham', 'eggs', 'spam'] ]! [ (x,y) for x in range(5) for y in range(3) ]

Compreensão de listas Funcionalidade muito poderosa da linguagem Python Gera uma lista nova aplicando uma função para cada elemento da lista original. Muito usado por programadores Python! (Economia de código!) A sintaxe da compreensão de lista usa-se de palavrachaves: [expression for name in list] >>>s = [ x**2 for x in range(10) ] >>> m = [len(x) for x in palavras]

Compreensão de listas Permite também o uso de filtros (determinam se uma determinada expressão deve ser executada sobre um membro da lista) [expression for name in list if filter ] >>> x = [x**2 for x in s if x%2 == 0] >>> m = [i for i in p if i>5] Você também pode aninhar compreensão de listas! [expression for name in [expression for name in list]]

Filtrando Listas [ name for name in names if name.startswith('b') ] [ x**2 for x in range(10) if x**2 > 5 and x**2 < 50 ]! squares = [ x**2 for x in range(10) ] special_squares = [ s for s in squares if s > 5 and s < 50 ]! [ s for s in [ x**2 for x in range(10) ] if s > 5 and s < 50 ]

Matrizes Listas podem ser usadas para guardar matrizes Por exemplo, podemos criar uma matriz identidade de 3x3 com o código!!! Obs: Não é uma boa idéia iniciar uma matriz assim:!!! Resultado: [[1, 1, 1], [1, 1, 1], [1, 1, 1]]

EXERCÍCIOS 45

47 Exercícios 1. Ler uma lista de 5 números inteiros e mostre cada número juntamente com a sua posição na lista. 2. Ler uma lista de 10 números reais e mostre-os na ordem inversa. 3. Ler uma lista com 4 notas, em seguida o programa deve exibir as notas e a média. 4. Ler uma lista com 20 idades e exibir a maior e menor.

48 Exercícios 5. Inicialize uma lista de 20 números inteiros. Usando compreensão de listas, armazene os números pares em uma lista PAR e os números ímpares em uma lista IMPAR. Imprima as listas PAR e IMPAR.! 6. Faça um programa que receba a temperatura média de cada mês do ano e armazene-as em uma lista. Em seguida, calcule a média anual das temperaturas e mostre a média calculada juntamente com todas as temperaturas acima da média anual, e em que mês elas ocorreram (mostrar o mês por extenso: 1 Janeiro, 2 Fevereiro,... ).

49 Exercícios 7. Faça um programa que leia uma lista L com valores informados pelo usuário e gere uma nova lista cujos valores consistem do dobro dos valores lidos. 8. Faça um programa que crie uma matriz aleatoriamente. O tamanho da matriz deve ser informado pelo usuário.

50 Exercícios 9. Faça um programa que leia um número indeterminado de notas. Após esta entrada de dados, faça o seguinte: Mostre a quantidade de notas que foram lidas. Exiba todas as notas na ordem em que foram informadas. Exiba todas as notas na ordem inversa à que foram informadas, uma abaixo do outra. Calcule e mostre a soma das notas. Calcule e mostre a média das notas. Calcule e mostre a quantidade de notas acima da média calculada.

51 Exercícios 10. Utilizando listas faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são: "Telefonou para a vítima?" "Esteve no local do crime?" "Mora perto da vítima?" Tinha dívidas com a vítima?" "Já trabalhou com a vítima? O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita ; entre 3 e 4 como "Cúmplice" e; 5 como "Assassino". Caso contrário, ele será classificado como "Inocente".

52 Exercícios 11. Uma empresa de pesquisas precisa tabular os resultados da seguinte enquete feita a um grande quantidade de organizações: "Qual o melhor Sistema Operacional para uso em servidores?" As possíveis respostas são: 1- Windows XP 2- Unix 3- Linux 4- Netware 5- Mac OS 6- Outro Você deve desenvolver um programa em Python que leia as respostas da enquete e informe ao final o resultado da mesma. O programa deverá ler os valores até ser informado o valor 0 (zero), que encerra a entrada dos dados. Não deverão ser aceitos valores além dos válidos para o programa (0 a 6). Os valores referentes a cada uma das opções devem ser armazenados em uma lista. Após os dados terem sido completamente informados, o programa deverá calcular a percentual de cada uma das respostas e informar o vencedor da enquete. continua no próximo slide

53 Exercícios 12. (Continuação) O formato da saída foi dado pela empresa, e é o seguinte: Sistemas Operacionais - Votos % Windows XP 1500 17% Unix 3500 40% Linux 3000 34% Netware 500 5% Mac OS 150 2% Outro 150 2% Total de 8800 votos O Sistema Operacional mais votado foi o Unix, com 3500 votos, correspondendo a 40% dos votos.

54 Bibliografia Livro Como pensar como um Cientista de Computação usando Python Capítulo 8 http://pensarpython.incubadora.fapesp.br/portal Python Tutorial http://www.python.org/doc/current/tut/tut.html Dive into Python http://www.diveintopython.org/ Python Brasil http://www.pythonbrasil.com.br/moin.cgi/ DocumentacaoPython#head5a7ba2746c5191e 7703830e02d0f5328346bcaac