为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的布尔函数,用于基于文本的冒险

Python中的布尔函数,用于基于文本的冒险

杨魅力 2021-03-29 17:53:02
好的,所以我试图设置一个布尔值,以便如果采用某项,则它变为True,而如果下次采用True,则它采用不同的路径,这是我第一次用Python写东西,所以请原谅错误的代码约定。无论如何,我需要在记笔记之前将布尔值设置为False,并且在需要时将其设为True。将来我可能会遇到的一个问题是,玩家有一部分会回到这个房间,当他们这样做时,我该如何保持布尔值真实?def first_room(Note):    choice1_1 = raw_input('The house looks much larger than it did from the outside. You appear in a room, to your left is a closet, to your right is a pile of junk, in front of you is a door, and behind you is the exit.')    choice1_1 = choice1_1.lower()    if choice1_1 == 'left' or choice1_1 == 'l' or choice1_1 == 'closet':        if note == False:            choice1_c = raw_input('You open the closet and check inside, there is a note. Do you take the note? (Y/N)')            choice1_c = choice1_c.lower()            if choice1_c == 'y':                print 'You took the note.'                first_room(True)            if choice1_c == 'n':                print 'You leave the note alone.'                first_room(False)        else:            print 'The closet is empty.'            first_room(True)first_room(False)
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

这里有几个问题:


首先,您假设整个世界都熟悉您所处的环境,然后提出问题。嗯,我们不是。:-)似乎您希望该函数记住的值note,但我不确定。


更多问题:


def first_room(Note):

在Python中,类名以大写字母开头,变量名应以小写字母开头。


if note == False:

永远,永远做到这一点!您可以直接测试布尔值,例如:


if not note:

您还可以互换的两个臂,if以使其听起来不那么傻:


if note:

    # ... do something ...

else:

    # ... do something else ...

无论如何,我建议您参加基础编程课程。


查看完整回答
反对 回复 2021-04-02
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您需要某种数据结构来存储房间的状态。Adict可能是一个不错的选择


例如:


rooms = {}

rooms['first_room'] = {'note': False}

然后您可以像这样检查便签的状态


if rooms['first_room']['note']:

    ...

并像这样更新


rooms['first_room']['note'] = True

在您学习的这个阶段,不要害怕做rooms一个全局变量


查看完整回答
反对 回复 2021-04-02
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信