如何在python中定义函数来重复提示? (初学者)

时间:2016-12-30 01:31:08

标签: python

我是python的新手,所以我决定通过使用python 3创建基本游戏来帮助自己学习!每当我尝试使用“def”时,就会出现问题。当我尝试运行此程序时,由于def,它完全跳过所有用户输入。在这种情况下使用功能的目的是将玩家返回到它呈现两扇门的位置。也许这是一个与缩进有关的问题?如果有人可以试一试,看看你是否能发现错误,你的帮助将不胜感激! :d

def sec1 ():
print ("You have two doors in front of you. Do you choose the door on the left or right?")
room1 = input('Type L or R and hit Enter.')

if room1 == "L":
    print ("********")
    print ("Good choice",name)
elif room1 == "R":
    print ("********")
    print ("Uh oh. Two guards are in this room. This seems dangerous.")
    print ("Do you want to retreat or coninue?")
    roomr = input('Type R or C and hit enter.')

if roomr == "R":
    print ("Good choice!")
    sec1()

3 个答案:

答案 0 :(得分:2)

你有缩进问题。缩进在Python中很重要。根据{{​​3}},建议使用4 spaces代替tabs进行缩进。你也缺少名字变量。

以下是一个快速解决方法:

def sec1 ():
    print("You have two doors in front of you. Do you choose the door on the left or right?")
    room1 = input('Type L or R and hit Enter.')

    name = "Player Name"

    if room1 == "L":
        print("********")
        print("Good choice", name)

    elif room1 == "R":
        print("********")
        print("Uh oh. Two guards are in this room. This seems dangerous.")
        print("Do you want to retreat or coninue?")
        roomr = input('Type R or C and hit enter.')

        if roomr == "R":
            print("Good choice!")
            sec1()

sec1()

为什么我们在那时有sec1()?

功能就像机器。它本身没有任何作用。有人必须操作它。 sec1()(注意括号)最后发送信号以开始执行顶部定义的函数sec1

我认为最好的学习方法是设置断点并使用调试器来了解程序的流向。

以调试模式运行程序并单击图标以逐步执行,跳过等等。这听起来很复杂但很容易,一旦您知道如何执行此功能,就可以节省大量时间。

数学函数

在这里提及Mathematical Functions可能有点偏离主题,但我认为,这完全是值得的。编程语言中的函数受Mathematical Functions的启发,但是,目前大多数编程语言(除了HaskellF#之类的函数式编程语言之外)都是原始Mathematical Functions的概念。 1}}在一年中非常偏离。

在数学中,函数的输出完全取决于它的输入,并且不会修改函数外部的值,但是,在大多数编程语言中,情况并非总是如此,有时它可能是运行时的来源错误。

<强>提示

由于您是初学者,我强烈建议您使用适当的IDE(集成开发环境),如果您还没有。 PyCharm有一个免费的社区版本。 IDE带有PEP8样式检查器,调试器,分析器等,可以帮助您更轻松地学习Python。

答案 1 :(得分:1)

def sec1 ():
    print ("You have two doors in front of you. Do you choose the door on the left or right?")
    room1 = input('Type L or R and hit Enter.')

函数体应缩进

答案 2 :(得分:1)

在Python中,缩进非常重要。这里有一个代码中有适当缩进的例子(我有几个自由):

def sec1 ():
    print ("You have two doors in front of you. Do you choose the door on the left or right?")
    name = input('Enter your name.')
    room1 = input('Type L or R and hit Enter.')

    if room1 == "L":
        print ("********")
        print ("Good choice",name)
    elif room1 == "R":
        print ("********")
        print ("Uh oh. Two guards are in this room. This seems dangerous.")
        print ("Do you want to retreat or coninue?")
        roomr = input('Type R or C and hit enter.')
        if roomr == "R":
            print ("Good choice!")
        elif roomr == "C":
            print ("Run!")

SEC1()