Python3.4:嵌套函数不执行

时间:2014-06-08 07:09:51

标签: python function python-3.x nested

这是我的完整代码:

import sys
import string

version = 1.0
print ("...Written in Python 3.4...\n")
print ("Copyright 2014 Ethan Gold. version 1.0")
print ("\n")
print ("Welcome to BattleText!")
print ("Is this your first time playing?")
#functions:



            #Story Select
def storySelect(sys, string):
    print ("\n Story Select: 1: Beta Framework")
    yn0 = input("> ")
    if yn0 == 1:
        betFrame(sys, string)

            #Beta Framework
def betFrame(sys, string):
    print ("test")


yn = input("> ")
if yn == "y":
    print ("\n Welcome to the world of BattleText!")
    print ("BT is a combat-based text adventure platform that supports multiple stories")
    print ("In this game, you win by defeating all enemies. You lose if your health drops to 0\n")
    print ("This is version", version)
    if version == 1.0:
        print ("This version of BattleText does not support third party or patchable stories")
        print ("BTv1.0 is a demo and all stories are distributed through official updates")
        print ("This is a test beta framework")
    else:
        print ("This version of BT should support third-party and patchable stories")

else:
    storySelect(sys, string)

出现问题的部分在这里:

#Story Select
    def storySelect(sys, string):
        print ("\n Story Select: 1: Beta Framework")
        yn0 = input("> ")
        if yn0 == 1:
            betFrame(sys, string)

                #Beta Framework
    def betFrame(sys, string):
        print ("test")

当调用storySelect时,它应该要求您从列表中进行选择。当你输入1时,它应该调用betFrame,但它似乎正在这样做。相反,当我输入1时,它只是空白,程序退出时没有错误。请帮忙!

1 个答案:

答案 0 :(得分:3)

input返回一个字符串。您将此与整数进行比较,因此表达式永远不会为真。您需要将输入转换为int(或比较为字符串)。

yn0 = input("> ")
if yn0 == "1":
    # do stuff


yn0 = int(input("> ")) # Also consider catching a ValueError exception
if yn0 == "1":
    # do stuff