Python 如何在冒险游戏中有条件地处理输入?

Python 如何在冒险游戏中有条件地处理输入?,python,python-3.x,adventure,Python,Python 3.x,Adventure,好的,我想开始一个冒险游戏,但我不知道如何让程序在两个答案中进行选择 例如:你想开始吗input(),但我不知道如何在玩家说“不”时中断并退出,还是说“是”时继续下一个问题之间做出选择 这是我的代码: import os import sys import random print("Welcome player!, we invite you to an andventure in our forests, but we warn you!, the monsters are luckng

好的,我想开始一个冒险游戏,但我不知道如何让程序在两个答案中进行选择

例如:你想开始吗
input()
,但我不知道如何在玩家说“不”时中断并退出,还是说“是”时继续下一个问题之间做出选择

这是我的代码:

import os
import sys
import random

print("Welcome player!, we invite you to an andventure in our forests, but we warn you!, the monsters are luckng in every corner!")
print("We are going to ask you question for what you want to do and you will answer them by writing in the chat yes or no")
print("are you ready?")
a = input("yes or no?:")

# what goes next?

直接问题

在正式结构化编程中,您可以通过Keatinge给您的测试来处理此问题:

if a.lower() == "yes":
    # Remainder of program
。。。程序的其余部分将缩进,使之成为if的所有“true”分支。在现实世界中,我会使用相反的逻辑:如果用户说“不”,那么结束程序:

if a.lower() == "no":
    exit()

# Remainder of program
更大的问题

学习代码

如果你通读你的课堂材料或Python教程来学习这些东西,你会对自己有很大帮助。真正地堆栈溢出不是教程站点;你应该能够自己查找基础知识。而且,你真的不想等我们回答一些机械的小问题

设计您的程序

使用任何适合你的描述性工具:流程图、故事板、任何能帮助你画出发生顺序的东西,以及你需要保留的信息(变量)。如果有什么帮助的话,“艰苦地学习Python”有一个很好的冒险游戏核心——你当然可以搜索“Python冒险”来获得帮助你自己组织的代码

实施

您的启动是正确的,但请确保继续:编写几行代码,确保它们执行您想要的操作,并且在它们工作之前不要继续。例如,您现在应该编写所需的if语句,并在每个分支中编写一条简单的消息,告诉您正确到达了那里。测试几次,至少输入“是”、“否”和其他垃圾信息


这应该让你开始。最重要的是,玩得开心。徒手杀死野兽。偷些财宝。掉进有钉子的坑里。被一只愤怒的家猫吃掉。

简单的例子和评论:

while True:
    answer = input("Are you ready? [Y/n] ")

    # remove spaces and convert to lower
    answer = answer.strip().lower()

    # set default answer
    if not answer:
        answer = 'y'

    # ----

    if answer == 'y':
        print("YES")
        break # exit `while`
    elif answer == 'n':    
        print("NO")
        break # exit `while`
    else:
        print("incorrect answer")
        # it will return to question

如果a.lower()==“yes”:
如果你不知道怎么做,你会有一大堆问题,阅读教程:也许你应该决定程序应该做什么,例如,如果用户回答“no”?在许多工具中,短答案是首选-
n
y
-当您只按enter
input(“您准备好了吗?”)
-upper
N
显示默认答案是
N
-但其余部分则必须使用
if
lower()