我是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()
答案 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
的启发,但是,目前大多数编程语言(除了Haskell
,F#
之类的函数式编程语言之外)都是原始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()