7.8 Exercícios - Leitura De Arquivos
1.Vamos começar abrindo o arquivo “palavras.txt” no nosso script forca.py que criamos no exercício anterior. É importante já acrescentar o comando para fechá-lo para não esquecer no futuro:
def jogar():print('\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*') print('\*\*\*Bem vindo ao jogo da Forca!\*\*\*') print('\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*')arquivo = open(‘palavras.txt’, ‘r’) arquivo.close()
restante do código
- Agora vamos criar uma lista chamada palavras e fazer um laço for para acessar cada linha para guardar na lista:
arquivo = open(‘palavras.txt’, ‘r’) palavras = []
for linha in arquivo: palavras.append(linha)arquivo.close()
- Como precisamos remover o \n ao final da linha, usaremos a função strip() em cada linha:
def jogar():arquivo = open(‘palavras.txt’, ‘r’) palavras = []
for linha in arquivo: linha - linha.strip() palavras.append(linha)arquivo.close()
7.8 EXERCÍCIOS - LEITURA DE ARQUIVOS
- Devemos importar a biblioteca random para gerar um número que vai de 0 até a quantidade de palavras da nossa lista. Usaremos a função len() para saber o tamanho da lista e a randrange() para gerar um número randômico de um intervalo específico:
import randomprint('\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*') print('\*\*\*Bem vindo ao jogo da Forca!\*\*\*') print('\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*')arquivo = open(‘palavras.txt’, ‘r’) palavras = []
for linha in arquivo: linha = linha.strip() palavras.append(linha)arquivo.close()
numero = random.randrange(0, len(palavras))
- Agora que temos o número aleatório, vamos utilizá-lo como índice para acessar a lista e atribuir essa palavra à variável palavra_secreta:
import randomprint("\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*") print("\*\*\*Bem vindo ao jogo da Forca!\*\*\*") print("\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*")arquivo = open(“palavras.txt”, “r”) palavras = []
for linha in arquivo: linha = linha.strip() palavras.append(linha)arquivo.close()
numero = random.randrange(0, len(palavras))
palavra_secreta = palavras[numero].upper() letras_acertadas = [’_’ for letra in palavra_secreta]
- Por fim, temos que deixar nossa variável letras_acertadas dinâmica, com número de letras de acordo com nossa palavra_secreta . Vamos utilizar um for dentro da lista para gerar um ’_’ para cada letra de acordo com o tamanho da palavra_secreta:
letras_acertadas = [’_’ for letra in palavra_secreta]
- Como já garantimos que a palavra_secreta está toda em letras maiúsculas com o código
palavras[numero].upper() , modificaremos o chute para o primeiro if continuar funcionando
chute = input(‘Qual a letra? ’) chute = chute.strip().upper()
Podemos executar o jogo e notar que a palavra é selecionada aleatoriamente!
80 7.8 EXERCÍCIOS - LEITURA DE ARQUIVOS
Mas agora a nossa função cresceu bastante, com várias funcionalidades e responsabilidades. No próximo capítulo organizaremos melhor o nosso código, separando-o em funções e deixando-o mais fácil de entender.