菜单选择功能

时间:2014-06-09 01:25:54

标签: python function

我是编码的新手,我已经决定先学习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()

2 个答案:

答案 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()