找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3102|回复: 3

[求助] python 书籍中例子出错:NameError: global name 'question' is not defined

6

主题

10

帖子

10

积分

贫民

积分
10
robin_xzz 发表于 2018-7-22 15:05:52 | 显示全部楼层 |阅读模式
survey.py
class AnonymousSurvey():
    def __init__(self, question):
        self.question = question
        self.resp**es = []
    def show_question(self):
        print(question)
    def store_resp**e(self, new_resp**e):
        self.resp**es.append(new_resp**e)
    def show_results(self):
        print("Survey results:")
        for resp**e in resp**es:
            print('- ' + resp**e)

language_survey.py
from survey import AnonymousSurvey
question = "What language did you first learn to speak?"
my_survey = AnonymousSurvey(question)
my_survey.show_question()
print("Enter 'q' at any time to quit.\n")
while True:
    resp**e = input("Language: ")
    if resp**e == 'q':
        break
    my_survey.store_resp**e(resp**e)
print("\nThank you to everyone who participated in the survey!")
my_survey.show_results()

运行出错:
  File "C:/Users/robin/.PyCharm2018.1/config/scratches/language_survey.py", line 4, in <module>
    my_survey.show_question()
  File "C:\Users\robin\.PyCharm2018.1\config\scratches\survey.py", line 9, in show_question
    print(question)
NameError: global name 'question' is not defined
Process finished with exit code 1
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-7-22 21:49:42 | 显示全部楼层
没问题,看看python版本
Screenshot from 2018-07-22 21-48-30.png
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-7-22 22:00:49 | 显示全部楼层
定义class里的show_question 里要print(self.question),后面show result 也应该是for respo nse in self.respo nses,漏了self。
回复 支持 反对

使用道具 举报

6

主题

10

帖子

10

积分

贫民

积分
10
robin_xzz  楼主| 发表于 2018-7-23 14:40:27 | 显示全部楼层
pthon版本是2.7.12版本,加上self就ok了,多谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表