68 Capítulo 2
na pressão
Chegou a hora do desafio.
Antes de fazer qualquer outra coisa, você pegou as sete linhas de
código mostradas na página anterior e as digitou em uma nova
janela de edição do IDLE, salvou o código como pa nic.py e
executou (pressionando F5).
Seu desafio era transformar a string "D o n’t p a n ic!" na string
"on tap" usando apenas os métodos da lista mostrados até
agora no livro. Antes das alterações, panic.py exibia “Don’t
panic!” duas vezes.
A nova string (exibindo “on tap”) será armazenada na variável
new _ phrase.
phrase = "Don't panic!"
plist = list(phrase)
print(phrase)
print(plist)
new_phrase = ''.join(plist)
print(plist)
print(new_phrase)
Você teve que adicionar
o código de manipulação
da lista aqui. Isto é o
que propusemos — não
se preocupe se o seu for
muito diferente. Há mais
de um modo de realizar as
transformações necessárias
usando os métodos da lista .
for i in range(4):
plist.pop()
plist.pop(0)
plist.remove(“ ’ ”)
plist.extend([plist.pop(), plist.pop()])
plist.insert(2, plist.pop(3))
Este pequeno loop retira os
quatro últimos objetos de
“plist”. Não mais “nic!”.
Livre-se do
‘D’ no início
da lista.
Encontre e remova o
apóstrofo da lista.
Troque os dois objetos
no final da lista pelo
primeiro pegando cada
objeto na lista e usando
os objetos obtidos para
estender a lista. Você
precisará pensar um
pouco nesta linha de
código. Ponto-chave:
as inserções ocorrem
*primeiro* (na ordem
mostradas), e depois a
extensão acontece.
Esta linha de código obtém o espaço
na lista e insere-o de volta na lista no
local do índice 2. Como a última linha de
código, o acréscimo ocorre *primeiro*,
antes de a inserção acontecer. E lembre-
se: os espaços são caracteres também.
Como há muita coisa acontecendo nesta solução do exercício, as
duas páginas seguintes explicam o código em detalhes.
CG_HeadFirst_Python.indb 68 18/07/2018 13:18:09
Get USE A CABEÇA! PYTHON now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.