CSE 111: Programando com funções

Exemplo de Solução

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


# Direitos Autorais 2020, Brigham Young University-Idaho. Todos os direitos reservados.

"""
Escreva um programa Python chamado provincias.py que leia o conteúdo
de provincias.txt para dentro de uma lista e depois modifique essa lista.
"""

def main():
    # Lê o conteúdo de um arquivo de texto chamado
    # provincias.txt para dentro de uma lista chamada lista_provincias.
    lista_provincias = ler_lista("provincias.txt")

    # Como auxílio de depuração, imprime a lista inteira.
    print(lista_provincias)

    # Remove o primeiro elemento da lista.
    lista_provincias.pop(0)
    # print(lista_provincias)

    # Remove o último elemento da lista.
    lista_provincias.pop()
    # print(lista_provincias)

    # Substitui todas as ocorrências de "AB" por "Alberta".
    for i in range(len(lista_provincias)):
        if lista_provincias[i] == "AB":
            lista_provincias[i] = "Alberta"
    # print(lista_provincias)

    # Chama o método count da lista, que contará
    # quantas vezes "Alberta" aparece na lista.
    quantidade = lista_provincias.count("Alberta")

    print()
    print(f"Alberta aparece {quantidade} vezes na lista modificada.")


def ler_lista(nome_arquivo):
    """Lê o conteúdo de um arquivo de texto para uma lista
    e retorna a lista contendo as linhas de texto.

    Parâmetro nome_arquivo: nome do arquivo de texto a ser lido
    Retorno: uma lista de strings
    """
    # Cria uma lista vazia que armazenará
    # as linhas de texto do arquivo.
    lista_texto = []

    # Abre o arquivo de texto para leitura e armazenar
    # a referência para o arquivo aberto em uma variável chamada arquivo_texto.
    with open(nome_arquivo, "rt", encoding="utf-8") as arquivo_texto:

        # Lê o conteúdo do arquivo
        # uma linha de cada vez.
        for linha in arquivo_texto:

            # Remove espaços em branco, se houver,
            # do início e do fim da linha.
            linha_limpa = linha.strip()

            # Adiciona a linha limpa
            # ao final da lista.
            lista_texto.append(linha_limpa)

    # Retorna a lista contendo as linhas de texto.
    return lista_texto


# Se este arquivo for executado assim:
# > python provincias.py
# então chama a função main. Caso contrário, se este arquivo
# for apenas importado, pula a chamada de main.
if __name__ == "__main__":
    main()