10
respostas

[Dúvida] python não está reconhecendo o atributo da função 'jogar' , ao executar 'adivinhacao.jogar'

jogos.py

import adivinhacao import forca

print("*") print("***Escolha o seu jogo!***") print("*")

print("(1) Forca (2) Adivinhação")

jogo = int(input("Qual jogo? "))

if (jogo == 1): print("Jogando forca") forca.jogar elif (jogo == 2): print("Jogando adivinhação") adivinhacao.jogar()

*********************************

***Escolha o seu jogo!***


(1) Forca (2) Adivinhação Qual jogo? 2

Jogando adivinhação

AttributeError Traceback (most recent call last) in 17 elif (jogo == 2): 18 print("Jogando adivinhação") ---> 19 adivinhacao.jogar()

AttributeError: module 'adivinhacao' has no attribute 'jogar'


# adivinhacao.py

import random

def jogar():

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")

numero_secreto = random.randrange(1, 100)
total_de_tentativas = 0
pontos = 1000

print("Qual o nível de dificuldade?")
print("(1) Fácil (2) Médio (3) Difícil")

nivel = int(input("Defina o nível: "))

if (nivel == 1):
    total_de_tentativas = 20
elif (nivel == 2):
    total_de_tentativas = 10
else:
    total_de_tentativas = 5

for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}".format(rodada, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

    if (chute < 1 or chute > 100):
        print("Você deve digitar um número entre 1 e 100!")
        continue

    acertou = numero_secreto == chute
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    if (acertou):
        print("Você acertou e fez {} pontos!".format(pontos))
        break
    else:
        if (maior):
            print("Você errou! O seu chute foi maior que o número secreto.")
        elif (menor):
            print("Você errou! O seu chute foi menor que o número secreto.")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos

print("Fim do jogo")
10 respostas

Olá! o código que você enviou veio um pouco mal formatado então ficou um pouco confuso para analisar, mas me parece que você não fez o import do jogar, apenas da forca.

adivinhacaoforca

jogo

Certo, Arthur. Verifique 2 coisas: Garanta que seus arquivos estão importando os demais arquivos e que eles estão na mesma pasta; Garanta que após a linha de código:

def jogar():

Tudo que fizer parte desta função, esteja identado.

Daí me retorna ;D

cara, importei certinho e aparentemente está tudo identado ,ainda sim o erro persiste :(

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Opa, vou tentar verificar aqui o que pode ser

Olá, Arthur. Tudo bom? Testei o código aqui no meu ambiente e pareceu funcionar normalmente. Não consegui identificar o que está rolando no seu código. Talvez, se você estiver utilizando algum notebook, possa estar esquecendo de rodar algum bloco importante do código que por algum motivo tenha ficado separado do resto do arquivo, não sei. De qualquer forma, nessas horas o que eu costumo fazer é simplesmente apagar tudo e tentar refazer mesmo. Desculpe por não ter conseguido resolver e sequer identificar o problema : (

que isso amigo, a ajuda já foi muito boa, vou atrás para ver oque é, se descobrir eu posto aqui, muito obrigado!!!

Arthur, tudo bem? Boa tarde! Você chamou a função no final do código? Consegue mandar um print ou o código inteiro?

chamei sim, vou mandar

# jogos.py

import forca

print("*********************************")
print("*******Escolha o seu jogo!*******")
print("*********************************")

print("(1) Forca (2) Adivinhação")

jogo = int(input("Qual jogo? "))

if (jogo == 1):
    print("Jogando forca")
    forca.jogar()
elif(jogo == 2):
    print("Jogando adivinhação")
# adivinhacao.py

import random

def jogar():
    print("*********************************")
    print("Bem vindo ao jogo de Adivinhação!")
    print("*********************************")

    numero_secreto = random.randrange(1, 100)
    total_de_tentativas = 0
    pontos = 1000

    print("Qual o nível de dificuldade?")
    print("(1) Fácil (2) Médio (3) Difícil")

    nivel = int(input("Defina o nível: "))

    if (nivel == 1):
        total_de_tentativas = 20
    elif (nivel == 2):
        total_de_tentativas = 10
    else:
        total_de_tentativas = 5

    for rodada in range(1, total_de_tentativas + 1):
        print("Tentativa {} de {}".format(rodada, total_de_tentativas))
        chute_str = input("Digite um número entre 1 e 100: ")
        print("Você digitou: ", chute_str)
        chute = int(chute_str)

        if (chute < 1 or chute > 100):
            print("Você deve digitar um número entre 1 e 100!")
            continue

        acertou = numero_secreto == chute
        maior = chute > numero_secreto
        menor = chute < numero_secreto

        if (acertou):
            print("Você acertou e fez {} pontos!".format(pontos))
            break
        else:
            if (maior):
                print("Você errou! O seu chute foi maior que o número secreto.")
            elif (menor):
                print("Você errou! O seu chute foi menor que o número secreto.")
            pontos_perdidos = abs(numero_secreto - chute)
            pontos = pontos - pontos_perdidos

    print("Fim do jogo")

jogar()
# forca

def jogar():

    print("*********************************")
    print("***Bem vindo ao jogo da Forca!***")
    print("*********************************")

    print("Fim do jogo")

jogar()    

Vale frisar que estou usando o Google Colab