'''
Escrever uma função que recebe uma lista de Strings
contendo nomes de pessoas como parâmetro e devolve
o nome mais curto. A função deve ignorar espaços antes
e depois do nome e deve devolver o nome "capitalizado", i.e.,
apenas com a primeira letra maiúscula.

Exercício 2: Menor nome
Como pedido no primeiro vídeo desta semana, escreva uma função menor_nome(nomes)
que recebe uma lista de strings com nome de pessoas como parâmetro e devolve o nome
mais curto presente na lista.

A função deve ignorar espaços antes e depois do nome e deve devolver o menor nome
presente na lista. Este nome deve ser devolvido com a primeira letra maiúscula e
seus demais caracteres minúsculos, independente de como tenha sido apresentado na
lista passada para a função.

Quando houver mais de um nome com o menor comprimento dentre os nomes na lista, a
função deve devolver o primeiro nome com o menor comprimento presente na lista.

Exemplos:

menor_nome(['maria', 'josé', 'PAULO', 'Catarina'])
# deve devolver 'José'

menor_nome(['maria', ' josé  ', '  PAULO', 'Catarina  '])
# deve devolver 'José'

menor_nome(['Bárbara', 'JOSÉ  ', 'Bill'])
# deve devolver José


'''

# def recebe_nomes():
#     lista_de_nomes = []
#     entrada = ''
#
#     entrada = input("Digite uma lista de nomes, (quando concluir a lista, digite sair): ")
#
#     while entrada != 'sair':
#         lista_de_nomes.append(entrada)
#         entrada = input("Digite um nome ou digite sair para concluir: ")
#
#     return lista_de_nomes


def menor_nome(lista_de_nomes):
    qnt_nomes = len(lista_de_nomes)
    menor_nome_lista = ''

    for i in range(qnt_nomes):
        nome = lista_de_nomes[i].strip().capitalize()
        # tamanho_menor_nome = len(menor_nome)
        # tamanho_nome = len(nome)

        if len(nome) < len(menor_nome_lista) or len(menor_nome_lista) == 0:
            menor_nome_lista = nome

        else:
            menor_nome_lista = menor_nome_lista

    return menor_nome_lista


def testa_menor_nome():

    assert menor_nome(['maria', 'josé', 'PAULO', 'Catarina']) == 'José'
    assert menor_nome(['maria', ' josé  ', '  PAULO', 'Catarina  ']) == 'José'
    assert menor_nome(['Bárbara', 'JOSÉ  ', 'Bill']) == 'José'