Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中定义函数以重复提示?(初学者)_Python - Fatal编程技术网

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

如何在python中定义函数以重复提示?(初学者),python,Python,我是python新手,所以我决定通过使用python 3创建一个基本游戏来帮助自己学习!每当我尝试使用“def”时,我的问题就会出现。当我试图运行这个程序时,由于def,它会完全跳过所有用户输入。在这种情况下,使用函数的目的是将播放器返回到显示两扇门的位置。也许这是一个与缩进有关的问题?如果有人能试一试,看看你是否能发现错误,你的帮助将不胜感激D def sec1 (): print ("You have two doors in front of you. Do you choose the

我是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()
函数体应该缩进


函数体应该缩进,在Python中,缩进非常重要。下面是一个适当缩进的代码示例(我有几个自由):


sec1()

在Python中,缩进非常重要。下面是一个适当缩进的代码示例(我有几个自由):


sec1()

您有缩进问题。缩进在Python中很重要。根据建议,缩进时建议使用
4个空格
而不是
选项卡
。您还缺少name变量

下面是一个快速解决方案:

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()?

功能就像机器。它自己什么也不做。必须有人来操作它<末尾的code>sec1()(注意括号)发送一个信号,开始执行顶部定义的函数
sec1

我认为最好的学习方法是设置断点并使用调试器来学习程序的运行方式

在调试模式下运行程序,然后单击图标以单步执行、单步执行等。这听起来很复杂,但非常简单,一旦您知道如何执行此功能,就可以节省大量时间

数学函数

也许在这里提到数学函数有点离题,但我认为,这是完全值得的。编程语言中的函数深受数学函数的启发,然而,在当今的大多数编程语言中(除了Haskell、
F#
等函数编程语言),原始数学函数的概念一年来都有很大的偏离

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

提示


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

您遇到了缩进问题。缩进在Python中很重要。根据建议,缩进时建议使用
4个空格
而不是
选项卡
。您还缺少name变量

下面是一个快速解决方案:

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()?

功能就像机器。它自己什么也不做。必须有人来操作它<末尾的code>sec1()(注意括号)发送一个信号,开始执行顶部定义的函数
sec1

我认为最好的学习方法是设置断点并使用调试器来学习程序的运行方式

在调试模式下运行程序,然后单击图标以单步执行、单步执行等。这听起来很复杂,但非常简单,一旦您知道如何执行此功能,就可以节省大量时间

数学函数

也许在这里提到数学函数有点离题,但我认为,这是完全值得的。编程语言中的函数深受数学函数的启发,然而,在当今的大多数编程语言中(除了Haskell、
F#
等函数编程语言),原始数学函数的概念一年来都有很大的偏离

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

提示


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

您的回答似乎暗示,尤其是对于初学者来说,使用4个空格对Python至关重要。事实并非如此。这是PEP8中推荐的良好做法,但完全没有必要。这个用户确实有缩进问题,但制表符和空格不是他们问题的一部分。@Chris Larson确实如此。这只是PEP8的建议。在学习Python时,我总是把制表符和空格混在一起,弄糊涂了。@Chris把函数的定义看作是工具箱中的一种工具。直到你伸出手来使用它,它才真正起作用。因此,如果您
def hammer()
现在有一个锤子,但您没有使用它。但是,一旦定义了
def
ined,就可以用锤子()将其敲掉。这有意义吗?@Chris基本上,顶部的东西,加上
def
,不是一个做东西的东西。它只是定义要做的事情。当你想做的时候,你可以自己使用
def
后面的位。@Chris Larson我必须更新我的答案。我想更像是这样。你的回答似乎暗示,特别是对初学者来说,使用4个空格是cr
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()