未定义Python导入自己的模块名

2024-09-29 23:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想更新我的基本混乱游戏。我已经做了,脚本从一个文本文件中获取单词,现在我想把它们分成模块,因为我有不同的文本文件和不同的单词。在

我有我的主要剧本,混乱_游戏.py公司名称:

import random
import amazement

#Welcome the player
print("""
    Welcome to Word Jumble.
        Unscramble the letters to make a word.
""")

def wordlist(file):
    with open(file) as afile:
        global the_list
        the_list = [word.strip(",") for line in afile for word in line.split()]
    print(the_list)

def main():
    score = 0
    for i in range(4):
        word = random.choice(the_list)
        theWord = word
        jumble = ""
        while(len(word)>0):
            position = random.randrange(len(word))
            jumble+=word[position]
            word=word[:position]+word[position+1:]
        print("The jumble word is: {}".format(jumble))

        #Getting player's guess
        guess = input("Enter your guess: ").lower()

        #congratulate the player
        if(guess==theWord):
            print("Congratulations! You guessed it")
            score +=1

        else:
            print ("Sorry, wrong guess.")
    print("You got {} out of 10".format(score))

#filename = "words/amazement_words.txt"
wordlist(filename)
main()

我要档案惊喜.py被导入混乱_游戏.py因为我希望用户选择组,从中选择单词。在

在惊喜.py公司名称:

^{pr2}$

我得到这个错误:

File "jumble_game.py", line 49, in <module>
    wordlist(filename)
NameError: name 'filename' is not defined

如果我用另一种方法,将主脚本导入惊喜.py并运行后者,代码函数没有问题。在

有什么线索吗?还是一个Python初学者,所以请容忍我。:)

谢谢你的帮助/建议!在


Tags: theinpy游戏positionrandomfilename单词
1条回答
网友
1楼 · 发布于 2024-09-29 23:24:43

您所说的问题是一个标准的名称空间/范围问题。您已经在范围内创建了一个变量惊喜.py但不是在混乱中_游戏.py命名空间。因此,无法访问中的顶层变量惊喜不告诉你的程序从哪里得到这个变量。在

你可以做一些事情。我列出两个:

1。在

from amazement import filename

这将允许您使用您所描述的术语“文件名”。在

或者2。在

将对filename的任何引用替换为amazement.filename。在

您可以在此处阅读有关作用域和命名空间的更多信息:http://sebastianraschka.com/Articles/2014_python_scope_and_namespaces.html

相关问题 更多 >

    热门问题