#exercicio 1
def inverso(frase):
    lista = str.split(frase)
    list.reverse(lista)
    return str.join(' ',lista)

#exercicio 2
def ordena(frase):
    """Documentação"""
    lista_das_palavras = str.split(frase)
    list.sort(lista_das_palavras)
    return str.join(' ',lista_das_palavras)

#exercicio 4
def encontre(frase, palavra, pos):
    """DOCUMENTAÇÃO"""
    lista_das_palavras = str.split(frase)
    if palavra in lista_das_palavras:
        #transformar a palavra em maiúsculas e retornar a frase modificada
        pos_ocorrencia = list.index(lista_das_palavras,palavra)
        lista_das_palavras[pos_ocorrencia] = str.upper(palavra)
        return str.join(' ',lista_das_palavras)
    else:
        #adicionar a palavra como a i-ésima palavra da frase, retornando a frase nova
        list.insert(lista_das_palavras,pos,palavra)
        return str.join(' ',lista_das_palavras)

#exercicio 5
def faltas(lista_de_jogos):
    """Documentação aqui"""
    jogo_0 = lista_de_jogos[0]
    jogo_1 = lista_de_jogos[1]
    jogo_2 = lista_de_jogos[2]
    
    total_faltas_jogo_0 = jogo_0[2][0] + jogo_0[2][1]
    total_faltas_jogo_1 = jogo_1[2][0] + jogo_1[2][1]
    total_faltas_jogo_2 = jogo_2[2][0] + jogo_2[2][1]
    
    return total_faltas_jogo_0 + total_faltas_jogo_1 + total_faltas_jogo_2

#exercicio 6
def insere(lista_de_numeros, n):
    """Essa função agora não modifica a lista dada!"""
    nova_lista = lista_de_numeros[:]
    list.append(nova_lista,n)
    list.sort(nova_lista)
    return nova_lista

#exercicio 7
#usa questao anterior!
def maiores(lista_de_numeros_decrescente,n):
    """blabla"""
    list.reverse(lista_de_numeros_decrescente)
    lista_de_numeros_decrescente = insere(lista_de_numeros_decrescente,n)
    list.reverse(lista_de_numeros_decrescente)
    primeira_posicao = list.index(lista_de_numeros_decrescente,n)
    return lista_de_numeros_decrescente[:primeira_posicao]

#exercicio 9
#usa questao anterior!
def media(lista_de_notas):
    """..."""
    copia = lista_de_notas[:]
    nota_media = sum(lista_de_notas) / len(lista_de_notas)
    list.sort(lista_de_notas)
    list.reverse(lista_de_notas)
    lista_dos_maiores = maiores(lista_de_notas,nota_media)
    list.reverse(lista_dos_maiores)
    
    if nota_media in copia:
        list.insert(lista_dos_maiores,0,nota_media)
        
    return nota_media,lista_dos_maiores

#exercicio 10
def colchao(medidas,altura_porta,largura_porta):
    list.sort(medidas)
    menor_colchao = medidas[0]
    maior_colchao = medidas[1]
    menor_porta = min(altura_porta,largura_porta)
    maior_porta = max(altura_porta,largura_porta)
    
    if menor_colchao > menor_porta or maior_colchao > maior_porta:
        return False
    # else implícito
    return True
