Buscar

lista_exercicios_COM_gabarito

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

FONTE DOS EXERCÍCIOS: a maior parte dos exercícios a seguir foi retirada de: 
https://panda.ime.usp.br/pensepy/static/pensepy/index.html 
https://developers.google.com/edu/python/
EXERCÍCIOS
1 - Crie uma lista chamada minha_lista com os seguinte items: 76, 92.3, “oi”, True, 4,
76.
minha_lista = [76, 92.3, 'oi', True, 4, 76]
2 - Considerando a lista do exercício anterior, escreva comandos para:
a) Inserir “laranja” e 76 no final da lista.
minha_lista.extend(['laranja',76])
b) Inserir “gato” na posição de índice 3.
minha_lista.insert(3,'gato')
c) Inserir 99 no início da lista.
minha_lista.insert(0,99)
d) Encontrar o índice de “oi”.
i = minha_lista.index('oi')
e) Contar o número de ocorrências de 76 na lista.
n = minha_lista.count(76)
f) Remover a primeira ocorrência de 76 da lista.
i = minha_lista.index(76)
del minha_lista[i]
g) Remover True da lista usando pop e index.
i = minha_lista.index(True)
pop = minha_lista.pop(i)
3 - Escreva uma função calcula_maximo que receba como entrada uma lista de
números inteiros e retorne o maior valor na lista. Por exemplo,
calcula_maximo([4,3,6,1,2]) deve retornar 6. (Observação: existe a função max
que faz isso, mas você não deve usá-la.)
def calcula_maximo(L):
 maior = L[0]
 for n in L:
 if(n > maior):
 maior = n
 return maior
4 - Escreva uma função soma_quadrados que receba como entrada uma lista de
números e retorne a soma dos quadrados dos números na lista. Por exemplo,
soma_dos_quadrados([2, 3, 4]) deve retorna 4+9+16 que é 29.
def soma_dos_quadrados(L):
 soma = 0
 for n in L:
 soma = soma + n*n
 return soma
5 - Escreva uma função soma_impares que receba como entrada uma lista de números
inteiros e retorne a soma dos números ímpares na lista. Por exemplo,
soma_impares([11,20,36,41,55,6]) deve retornar 107.
def soma_impares(L):
 soma = 0
 for n in L:
 if(n%2==1):
 soma = soma + n
 return soma
6 - Escreva uma função quantidade_negativos que receba como entrada uma lista
de números inteiros e retorne a quantidade de números negativos na lista. Por exemplo,
quantidade_negativos([­1,­2,3,4,­5,­6]) deve retornar 4.
def quantidade_negativos(L):
 qtde = 0
 for n in L:
 if(n<0):
 qtde = qtde + 1
 return qtde
7 - Escreva uma função quantidade_palavras_5 que receba como entrada uma lista
de palavras e retorne o número de palavras na lista que tenham comprimento 5. Por
exemplo, quantidade_palavras_5(['Brasil','peralta','mesa','lance',
'teste']) deve retornar 2.
def quantidade_palavras_5(L):
 qtde = 0
 for n in L:
 if(len(n)==5):
 qtde = qtde + 1
 return qtde
 
8 - Escreva uma função soma_par que receba como entrada uma lista de números
inteiros e retorne a soma dos números na lista, excluindo o primeiro número par. Por
exemplo, soma_par([12,20,13,84,15,6]) deve retornar 20+84+6 = 110.
def soma_par(L):
 primeiro = False
 soma = 0;
 for n in L:
 if(n%2==0):
 if(primeiro==False):
 primeiro = True
 else:
 soma = soma + n
 return soma
9 - Escreva uma função quantidade_palavras_fim que receba como entrada uma
lista de palavras e retorne o número de palavras que ocorre na lista até, e inclusive, a
primeira ocorrência da palavra “fim”. Por exemplo,
quantidade_palavras_fim(['Brasil',   'peralta',   'mesa',   'fim',
'lance', 'teste', 'fim', 'gato']) deve retornar 4.
def quantidade_palavras_fim(L):
 i = L.index('fim')
 return len(L[:i+1])
10 - Escreva um função imprime_letras que receba como entrada uma lista de
palavras e imprima todas as letras da lista. Por exemplo, imprime_letras([“pera”,
“laranja”, “uva”]) deve imprimir 'p,e,r,a,l,a,r,a,n,j,a,u,v,a '.
def imprime_letras(L):
 letras=''
 for n in L:
 letras = letras + n
 print(','.join(letras)) 
11 - Apesar do Python fornecer uma grande lista de métodos e funções nativos, é uma
boa prática e instrutivo pensar sobre como eles podem ser implementados. Implemente
uma função que se comporte como os seguintes comandos do Python:
a) count
def meu_count(L,v):
  qtde = 0
  for n in L:
    if(n==v):
      qtde = qtde + 1
  return qtde
b) in
def meu_in(L,v):
  em = False
  for n in L:
    if(n==v):
      em = True
      break
  return em
c) reverse
def meu_reverse(L):
  return L[::­1]
d) index
def meu_index(L,v):
  indice = ­1
  for i,n in enumerate(L):
    if(n==v):
      indice = i
      break
  return indice
e) insert
def meu_insert(L,posicao,valor):
  L_novo = L[:posicao] + [valor] + L[posicao:]
  return L_novo
12 – Escreva uma função palavras_inicio_fim_iguais que receba como entrada
uma lista de palavras e retorne a quantidade de palavras da lista que possuem 2 ou mais
caracteres e cujos primeiro e último caracteres sejam iguais. Por exemplo,
palavras_inicio_fim_iguais(['aba',   'xyz',   'aa',   'x',   'bbb'])
retorna 3.
def palavras_inicio_fim_iguais(L):
  qtde = 0;
  for n in L:
    if(len(n)>=2 and n[0]==n[­1]):
      qtde = qtde + 1
  return qtde
13 – Escreva uma função x_na_frente que receba como entrada uma lista de palavras
e retorne uma lista ordenada com as palavras da lista de entrada, considerando que as
palavras que começam com 'x' devam vir antes. Por exemplo, x_na_frente(['bbb',
'ccc',   'axx',   'xzz',   'xaa']) deve retornar ['xaa',   'xzz',   'axx',
'bbb', 'ccc']. Dica: ordene as palavras com 'x' em uma lista e as demais em outra
lista e depois concatene.
def x_na_frente(L):
 L_comeca_x = []
 L_nao_comeca_x = []
 for n in L:
 if(n[0]=='x'):
 L_comeca_x.append(n)
 else:
 L_nao_comeca_x.append(n)
 return sorted(L_comeca_x) + sorted(L_nao_comeca_x)
14 – Escreva uma função ordenar_ultimo que receba como entrada uma lista de
tuplas não vazias e retorne uma lista ordenada com as tuplas, segundo o último elemento
de cada tupla. Por exemplo, ordenar_ultimo([(1, 7), (1, 3), (3, 4, 5),
(2, 2)]) deve retornar [(2, 2), (1, 3), (3, 4, 5), (1, 7)]. Dica: Utilize
ordenação personalizada usando key.
def meu_key(e):
 return e[-1]
def ordenar_ultimo(L):
 return sorted(L,key=meu_key)
15 - Escreva uma função troca que receba como entrada três strings str, velho e
novo e troca em str todas as ocorrências de velho por novo. Por exemplo, troca('Um
aluno, dois alunos, tres alunos.','aluno','estudante') deve retornar a string 'Um estudante,
dois estudante, tres estudantes.'. Observação: existe a função replace que faz isso, mas
você não deve usá-la. (Dica: use os métodos split e join).
def troca(str,velho,novo):
 str_nova = ''
 inicio=0
 while(True):
 i = str.find(velho,inicio)
 if(i != -1):
 str_nova = str_nova + str[inicio:i] + novo
 inicio = i+len(velho)
 else:
 str_nova = str_nova + str[inicio:]
 break
 return str_nova
 
16 – Escreva uma função remove_pontuacao que receba como entrada uma string e
retorne outra string com os caracteres da primeira sem os sinais de pontuação. Por
exemplo, remove_pontuacao('Hoje eh dia de sol! Voce quer ir a praia,
Emanuel?') deve retornar a string 'Hoje eh dia de sol Voce quer ir a praia Emanuel'.
def remove_pontuacao(str):
 str_novo=''
 for n in str:
 if(n not in ',.!?'):
 str_novo = str_novo + n
 return str_novo
17 – Escreva uma função informacoes_string que receba como entrada uma string e
imprima na tela uma mensagem da seguinte forma, contendo informações sobre a string:
O texto contem 243 palavras, das quais 109 (44.8%) contem um 'e'.
Por exemplo, informacoes_string('Uma string eh uma colecao ordenada
de zero ou mais letras, numeros e outros simbolos.') deve imprimir na
tela “O texto contém 15 palavras, das quais 8 (0.53%) contem um 'e'.”
def informacoes_string(str):
 qtde_e = 0
 palavras = str.split(' ')
 for n in palavras:
 if('e'in n):
 qtde_e = qtde_e + 1
 print('O texto contém %d palavras, das quais %d (%f%%) contem um e.' %
(len(palavras),qtde_e,qtde_e/(1.0*len(palavras)) ) )
18 - Escreva uma função numero_digitos que receba como entrada um número inteiro
e retorne o número de dígitos desse inteiro. Por exemplo numero_digitos(5237) deve
retornar 4.
def numero_digitos(d):
 s = str(d)
 return len(s)
19 - Escreva uma função remove_ocorrencias que receba como entrada uma string e
uma letra e retorne uma string na qual todas as ocorrências da letra na string de entrada
são removidas. Por exemplo, remove_ocorrencias('algoritmos e estrutura
de dados','a') deverá retornar a string 'lgoritmos e estrutur de ddos'.
def remove_ocorrencias(str,letra):
 str_nova = ''
 inicio=0
 while(True):
 i = str.find(letra,inicio)
 if(i != -1):
 str_nova = str_nova + str[inicio:i]
 inicio = i+1
 else:
 str_nova = str_nova + str[inicio:]
 break
 return str_nova
 
20 - Escreva uma função eh_palindroma que recebe como entrada uma string e retorna
um valor booleano indicando se a string é palíndroma ou não. Por exemplo,
eh_palindroma('arara') deve retorna True. (Dica: use a função reverse).
def eh_palindroma(str):
 if(str == str[::-1]):
 return True
 else:
 return False
21 - Escreva uma função quantidade_string que recebe como entrada duas strings e
retorne a quantidade de vezes que a primeia string ocorre na segunda. Por exemplo,
quantidade_string('aluno','Um aluno, dois alunos, tres alunos.')
deve retornar 3. (Dica: use a função find).
def quantidade_string(str1,str2):
 qtde = 0
 inicio = 0
 while(True):
 i = str2.find(str1,inicio)
 if(i != -1):
 qtde = qtde + 1
 inicio = i + 1
 else:
 break
 return qtde
22 - Qual o resultado de cada um dos comandos seguintes:
1.'Python'[1] 
'y'
2.'Strings são sequências de caracteres.'[5] 
'g'
3.len('maravilhoso') 
11
4.'Misterio'[:4] 
'Mist'
5.'p' in 'Pineapple 
True
6.'apple' in 'Pineapple
True
7.'pear' not in 'Pineapple 
True
8.'apple' > 'pineapple' 
False
9. 'pineapple' < 'Peach'
False
23 - No livro Make Way for Ducklings de Robert McCloskey, os patinhos são chamados de
Jack, Kack, Lack, Mack, Nack, Ouack, Pack, e Quack. Esse laço tenta imprimir esses
nomes ordenadamente.
prefixes = "JKLMNOPQ"
suffix = "ack"
for p in prefixes:
    print(p + suffix)
É claro que esse programa tem problemas pois Ouack e Quack não são escritos
corretamente. Você consegue consertar o programa?
Podemos substituir o primeiro comando por:
prefixes = ['J', 'K', 'L', 'M', 'N', 'Ou', 'P', 'Qu']
24 - Escreva uma função interseccao que receba duas strings como entrada e retorne
uma nova string contendo os caracteres comuns às duas strings de entrada. Por exemplo,
interseccao('escolas','estudantes') deve retornar 'esa'.
def interseccao(str1,str2):
 inter=''
 for n in str1:
 if(n in str2 and n not in inter):
 inter = inter + n
 return inter
25 – Escreva uma função nao_eh_ruim que receba como entrada uma string e encontre
as primeiras ocorrências de 'nao eh' e de 'ruim'. Se 'nao' vier antes de 'ruim', deve-se
substituir a expressão 'nao eh...ruim' por 'eh bom', retornando a nova string. Por exemplo,
nao_eh_ruim('Figado nao eh tao ruim') deve retornar 'Figado eh bom'.
def nao_eh_ruim(str):
  i1 = str.find('nao eh')
  i2 = str.find('ruim')
  if(i1 < i2):
    return str[:i1] + 'eh bom' + str[(i2+4):]
  else:
    return str
DICIONÁRIOS
1 - Escreva um programa que leia uma string do teclado e retorne uma tabela com a 
frequência com que cada letra aparece na string, em ordem alfabética. Ignore se as letras 
são maiúsculas ou minúsculas. Um exemplo de execução do programa ficaria assim:
"ThiS is String with Upper and lower case Letters."
a 2
c 1
d 1
e 5
g 1
h 2
i 4
l 2
n 2
o 1
p 2
r 4
s 5
t 5
u 1
w 2
str = raw_input('Digite uma frase: ')
str = str.lower()
dic={}
for n in str:
 if(dic.has_key(n) == False):
 dic[n] = 0
 dic[n] = dic[n]+1
for n in sorted(dic.keys()):
 if(n.isalpha()==True):
 print(n,dic[n])
2 - Forneça a resposta do interpretador Python para cada uma das questões seguintes, 
assumindo que os comandos são dados continuamente na mesma sessão:
>>> d = {'apples': 15, 'bananas': 35, 'grapes': 12}
d['banana']
KeyError: 'banana'
d['oranges'] = 20
len(d)
4
'grapes' in d
True
d['pears']
KeyError: 'pears'
d.get('pears', 0)
0
fruits = d.keys()
fruits.sort()
print(fruits)
['apples', 'bananas', 'grapes', 'oranges']
del d['apples']
'apples' in d
False
Certifique-se de que você entendeu a razão de cada resultado. Então aplique o que você 
aprendeu para preencher o corpo da função abaixo:
def add_fruit(inventory, fruit, quantity):
  global new_inventory
  new_inventory[fruit] = quantity
# faça esses testes funcionarem...
new_inventory = {}
add_fruit(new_inventory, 'strawberries', 10)
test('strawberries' in new_inventory, True)
test(new_inventory['strawberries'], 10)
add_fruit(new_inventory, 'strawberries', 25)
test(new_inventory['strawberries'] , 35)
3 - A seguinte tabela contém tradução de algumas palavras em português para a língua 
dos piratas
Português Pirata
senhor matey
hotel fleabag inn
estudante swabbie
garoto matey
madame proud beauty
professor foul blaggart
restaurante galley
seu yer
com licença arr
estudantes swabbies
são be
advogado foul blaggart
o th’
banheiro head
meu me
oi avast
é be
homem matey
Escreva um programa que pede que o usuário digite uma frase em português e imprima a
tradução da frase para a língua dos piratas. 
Dicionario = {'senhor':'matey','hotel':'fleabag 
inn','estudante':'swabbie','garoto':'matey','madame':'proud beauty','professor':'foul 
blaggart','restaurante':'galley','seu':'yer','com 
licença':'arr','estudantes':'swabbies','são':'be','advogado':'foul 
blaggart','o':'th’','banheiro':'head','meu':'me','oi':'avast','é':'be','homem':'matey'}
frase = raw_input('Digite uma frase para ser traduzida: ')
palavras = frase.split(' ')
frase_pirata = ''
for n in palavras:
 if(Dicionario.has_key(n)==True):
 frase_pirata = frase_pirata + Dicionario[n] + ' '
 else:
 frase_pirata = frase_pirata + n + ' '

Outros materiais