CSE 111: Programando com funções

Exemplo de Solução

O seguinte programa mostra uma maneira de resolver este problema. Essa não é a única forma possível de solucioná-lo.


# Copyright 2020, Universidade Brigham Young-Idaho. Todos os direitos reservados.

"""
Escreva e chame funções que demonstrem tanto
valores padrão de parâmetros quanto passagem por referência.
"""
import random

def main():
    numeros = [16.2, 75.1, 52.3]
    print(f"números {numeros}")

    # Chama a função anexar_numeros_aleatorios para
    # anexar um número aleatório à lista numeros.
    anexar_numeros_aleatorios(numeros)
    print(f"números {numeros}")

    # Chama a função anexar_numeros_aleatorios para anexar
    # três números aleatórios à lista numeros.
    anexar_numeros_aleatorios(numeros, 3)
    print(f"números {numeros}")

    # Cria uma lista para armazenar palavras aleatórias.
    lista_palavras = []

    # Chama a função anexar_palavras_aleatorias
    # para anexar uma palavra aleatória à lista.
    anexar_palavras_aleatorias(lista_palavras)
    print(f"palavras {lista_palavras}") 

    # Chama a função anexar_palavras_aleatorias
    # para anexar cinco palavras aleatórias à lista.
    anexar_palavras_aleatorias(lista_palavras, 5)
    print(f"palavras {lista_palavras}") 


def anexar_numeros_aleatorios(lista_numeros, quantidade=1):
    """Anexa quantidade de números aleatórios à lista numeros.
    Os números aleatórios estão entre 0 e 100, inclusive.
    
    Parâmetros:
        numeros: uma lista de números onde esta função irá
            anexar números aleatórios.
        quantidade: a quantidade de números aleatórios que esta função
            irá anexar à lista_numeros.
    Retorno: nenhum. Não é necessário que esta função retorne
        nada porque ela modifica diretamente a lista_numeros.
    """
    for _ in range(quantidade):
        numero_aleatorio = random.uniform(0, 100)
        arredondado = round(numero_aleatorio, 1)
        lista_numeros.append(arredondado)


def anexar_palavras_aleatorias(lista_palavras, quantidade=1):
    """Anexa quantidade de palavras escolhidas aleatoriamente à lista_palavras.
    
    Parâmetros:
        lista_palavras: uma lista de palavras onde esta função irá
            anexar palavras aleatórias.
        quantidade: a quantidade de palavras aleatórias que esta função
            irá anexar à lista_palavras.
    Retorno: nenhum. Não é necessário que esta função retorne
        nada porque ela modifica diretamente lista_palavras.
    """

    # Uma lista de palavras para escolher aleatoriamente.
    candidatas = [
        "braço", "carro", "nuvem", "cabeça", "cura", "hidrogênio", "correr",
        "unir", "rir", "amor", "dormir", "sorrir", "falar",
        "sol", "escova de dentes", "árvore", "verdade", "andar", "água"
    ]

    # Escolhe aleatoriamente quantidade de palavras e as anexa à lista_palavras.
    for _ in range(quantidade):
        palavra = random.choice(candidatas)
        lista_palavras.append(palavra)


# Se este arquivo for executado assim:
# > python numeros_aletorios.py
# então chama a função main. Porém, se este arquivo
# for apenas importado, ignora a chamada à main.
if __name__ == "__main__":
    main()