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

Hoje vou publicar mais uma série de trechos de código e no final alguns exercícios resolvidos em Python. Alguns dos exercícios resolvidos por mim, foram exercícios efetuados em desafios propostos.

Os exercícios podem ser encontrados em HackerRank que são grátis ou em JetBrains Academy que é pago.

Exemplos de como juntar  elementos do tipo strings a partir de uma lista.

word_list  = ["rose", "lily", "tulip", "orchid"]

" ".join(word_list)  # rose lily tulip orchid
"".join(word_list)  # roselilytuliporchid
"_".join(word_list)  # rose_lily_tulip_orchid
" and ".join(word_list)  # rose and lily and tulip and orchid

Exemplos de como usar o método splitlines.

long_text = 'first line\nsecond line\rthird line\r\nforth line'

long_text.splitlines()
# ['first line', 'second line', 'third line', 'forth line']

O método splitlines possuí um argumento opcional keepends que possui valor True ou False. Se keepends = True, os caracteres de quebra de linha e tabulação serão guardados na lista.

long_text = 'first line\nsecond line\rthird line\r\nforth line'

long_text.splitlines(keepends=True)
# ['first line\n', 'second line\r', 'third line\r\n', 'forth line']

Exemplo do uso dos argumentos sep e end do método print.

print('Acácio', 'Ferreira', sep='&')  # Acácio&Ferreira
print('Acácio', 'Ferreira', sep='&', end=', Lda.')  # Acácio&Ferreira, Lda.
print('Acácio', 'Ferreira', sep=0)  # TypeError: sep must be None or a string, not int

# o argumento 'sep', pode ser substituido pelo argumento 'end' com o uso de uma outra string.
print('Tick-Tock', end=' the ')
print('Crocodil', end='e')
# Tick-Tock the Crocodile	

O teste de programação “mais famoso” FizzBuzz.

Este teste é muito usado em entrevistas de candidatos a programadores, este permite filtrar cerca 99.5% dos candidatos. Ora aqui fica o enunciado.

Imprima os números de 1 até 100 inclusive seguindo as seguintes instruções:

  • se um número é múltiplo de 3,   imprima “Fizz” em vez desse número
  • se um número é múltiplo de 5,   imprima “Buzz” em vez desse número
  • para os números que são ambos múltiplos de 3 e 5,   imprima “FizzBuzz”
  • imprima os restantes que não se enquadram nos problemas acima.

O output deve ser imprimido em linhas separadas.

 

 

 

Solução:

for i in range(1, 101):
    if i % 3 == 0 and i % 5 == 0:
        print('FizzBuzz')
    elif i % 3 == 0:
        print('Fizz')
    elif i % 5 == 0:
        print('Buzz')
    else:
        print(i)

Como gerar texto a partir de dígitos para um sistema de voz?

Imaginemos que digitamos um número de telefone e o sistema de voz necessita do texto para poder processar o mesmo para voz.

Exemplo:

Input

213948111

Output

dois
um
três
nove
quatro
oito
um
um
um

 

 

 

 

 

Solução:

 

numbers = ['zero', 'um', 'dois', 'três', 'quatro', 'cinco', 'seis', 'sete', 'oito', 'nove']
input_number = input()

for n in input_number:
    print(numbers[int(n)])

Leave a Reply