Python Dicas e Trechos de Código (Snippets) – Parte 7

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

Leave a Reply