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()