# Questão 1 def modifica_lista(lista, valor): """Recebe uma lista e um valor, e retorna uma lista como a dada no argumento, substituindo a primeira ocorrência de `valor` (se existir) pelos elementos 'a', 'q', 'u', 'i'""" if valor not in lista: retorno = lista.copy() # retorno = lista # apenas apelido... return retorno posição = lista.index(valor) return lista[:posição] + ['a','q','u','i'] + lista[posição+1:] # Questão 2 def maiores_e_menores_que_média(lista): """Recebe uma lista de valores inteiros e retorna duas listas: uma composta dos elementos da lista dada como argumento estritamente menores que a média dos valores presentes naquela lista, em ordem crescente, e a outra composta dos valores maiores ou iguais à média, em ordem decrescente.""" média = sum(lista)/len(lista) cópia = lista.copy() if média not in lista: cópia.append(média) cópia.sort() posição_média = cópia.index(média) primeira = cópia[:posição_média] segunda = cópia[posição_média+1:] return primeira, segunda[::-1] # Questão 3a from random import randrange def elemento_aleatório(sequência): """ Retorna um elemento aleatório da sequência dada. A sequência tem que ser não vazia. """ quantidade = len(sequência) posição = randrange(quantidade) return sequência[posição] # Questão 3b def gera_senha(palavras, separadores): """ Gera uma senha estilo "passphrase" sorteando 4 palavras da lista de palavras dada (uma lista de strings) separadas por separadores sorteados dentre os separadores dados (uma string) """ palavra_1 = elemento_aleatório(palavras) separador_1 = elemento_aleatório(separadores) palavra_2 = elemento_aleatório(palavras) separador_2 = elemento_aleatório(separadores) palavra_3 = elemento_aleatório(palavras) separador_3 = elemento_aleatório(separadores) palavra_4 = elemento_aleatório(palavras) return palavra_1 + separador_1 + palavra_2 + separador_2 + palavra_3 + separador_3 + palavra_4