每当我在我的项目中调用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
答案 0 :(得分:0)
如评论中所述,raw_input
会返回一个字符串,您需要将其投射。但是,您可能需要为任何类型而不是数字捕获ValueError。
相反,你可以这样做
if choice == '1'
menu_choice