我是编码的新手,我已经决定先学习python。到目前为止,我很喜欢它。但是当谈到功能时,我发现自己撞墙了。
我的目标是创建一个功能,以便我不需要输入
[chapter = raw_input("Select a chapter
],只需使用,[c_selection()
]
但我似乎无法让它发挥作用。此外,我还没有参加任何类型的论坛。所以,如果我的帖子中有某些我需要的东西请告诉我。谢谢!
def C_selection():
chapter = raw_input("Select a chapter: ")
def menu ():
print "Chapter 1"
print "Chapter 2"
C_selection()
chapter = "home"
while 1 == 1:
if chapter == "home":
menu()
if chapter == "1":
print "Welcome to chapter 1"
print " 'home' back"
C_selection()
答案 0 :(得分:2)
您应该更改C_selection函数以返回章节。
def C_selection():
return raw_input("Select a chapter: ")
菜单功能也应返回章节。然后你的while循环可以改为
chapter = "home"
while True:
if chapter == "home":
chapter = menu()
if chapter == "1":
print "Welcome to chapter 1"
print " 'home' back"
chapter = C_selection()
这样就可以避免使用全局变量。作为旁注而True和1 == 1完全相同,但True是更传统的写作方式。
答案 1 :(得分:1)
您必须在访问全局变量的函数中使用全局关键字。
否则会创建另一个章节变量,该变量是 C_selection 函数的本地变量,当该函数返回时,您对其所做的任何更改都将丢失。
e.g。
chapter = "home"
def C_selection():
global chapter
chapter = raw_input("Select a chapter: ")
def menu ():
print "Chapter 1"
print "Chapter 2"
C_selection()
while 1 == 1:
if chapter == "home":
menu()
if chapter == "1":
print "Welcome to chapter 1"
print " 'home' back"
C_selection()