无法在raw_input之后输入if语句

时间:2016-01-01 20:10:51

标签: python if-statement input

每当我在我的项目中调用while循环中的函数时,它将根据刚被调用的函数执行绝对的操作,并且将继续刷新循环,就像没有发生任何事情一样。

这是我写的一个简单示例,演示了这个问题。通过运行代码,您将看到一个菜单,您需要从菜单中输入一个选项。这样做时,一些“if”语句将检查您选择的选项,并调用并执行下面的代码,如果该选项不属于任何语句,则菜单将只刷新:

#!/usr/bin/env python

import os
import time

def test():
    x = True
    while True:
        if not x:
            print "You need to type 1\n"
        choice = raw_input("type 1 here: ")
        if choice == 1:
            print 'Works!\n'
            time.sleep(5)
            break
        else:
            x = False

def test2():
    print "Test123\n"

try:
    while True:
        os.system("clear")

        menu_choice = raw_input("Enter Choice: ")

        if menu_choice == 1:
            test()

        if menu_choice == 2:
            test2()

        if menu_choice == 3:
            os.system("python")

except:
    pass

1 个答案:

答案 0 :(得分:0)

如评论中所述,raw_input会返回一个字符串,您需要将其投射。但是,您可能需要为任何类型而不是数字捕获ValueError。

相反,你可以这样做

 if choice == '1'

menu_choice

相同