Descompactar objectos é algo bastante recorrente que temos que efetuar em Python e existe a forma difícil e tradicional ou uma forma bastante conveniente. Ainda vou mostrar alguns trechos de código do uso dos argumentos ‘sep’ e ‘end’ do método print.
O primeiro argumento da função ‘print’ é a imprimir os objectos. Por exemplo uma lista characters = [‘Saudades da’, ‘nossa geração’, ‘a única’, ‘epidemia era’, ‘de piolho’] se eu imprimir esta lista o resultado é [‘Saudades da’, ‘nossa geração’, ‘a única’, ‘epidemia era’, ‘de piolho’]. Mas se quisermos imprimir os objectos da lista, e não a lista como um todo, uma das formas será com o recurso a um ciclo:
characters = ['Saudades da', 'nossa geração', 'a única', 'epidemia era', 'de piolho'] for element in characters: print(element) # Output: # Saudades da # nossa geração # a única # epidemia era # de piolho
Mas em Python existe uma forma muito mais conveniente e eficaz de o fazer. Com o recurso a um asterisco * antes da lista, ou seja isso significa que todos os elementos da lista vão ser desempacotados e passados para a função um após outro:
print(*characters) # Saudades da nossa geração a única epidemia era de piolho
Exercício do uso * no método print.
Dado uma lista que contém letras de um nome. Imprima para string mas cada carácter terá que estar separado por um hífen e com um ponto de exclamação no fim para esse efeito deve-se usar a função ‘print’ e os seus argumentos.
Por exemplo, se as letras do nome na lista for [‘M’, ‘A’, ‘R’, ‘I’, ‘A’], o programa deve imprimir M-A-R-I-A!
Solução:
name = ['M', 'A', 'R', 'C', 'O'] print(*name, sep='-', end='!')
Outro exercício do uso de argumentos da função ‘print’.
Imaginemos que possuímos as seguintes variáveis com as suas strings:
adj = “Good”
part_of_day = “morning”
comma = “,”
title = “Ms.”
surname = “Johnson”
O objectivo consiste em imprimir a saudação em Inglês “Good morning, Ms. Johnson!” sem as aspas exactamente com a mesma pontuação.
Para o efeito deve usar uma única vez a função ‘print’ e os seus respectivos argumentos. Para cumprir a tarefa pode-se fazer uso do símbolo de concatenação de strings (+) caso seja necessário.
Solução:
print(adj, part_of_day + comma, title, surname, sep=' ', end='!')
Dicionários encadeados
Um dicionário encadeado é simplesmente um dicionário ou vários dentro de um dicionário.
Por exemplo várias contas bancárias e cada conta possuí um número pin e o saldo da conta.
accounts = {} accounts['4000001631693098'] = {"pin" : 7161, "balance" : 10} # 7161 accounts['4000009152049017'] = {"pin" : 2958, "balance" : 20} # 2958 print(accounts) print(accounts['4000001631693098']['pin']) print(accounts['4000001631693098']['balance']) # {'4000001631693098': {'pin': 7161, 'balance': 10}, '4000009152049017': {'pin': 2958, 'balance': 20}} # 7161 # 10