我是python的新手,想尝试制作一款快速游戏。我正在使用输入功能,以便我可以让用户与游戏进行交互,但我很困惑的是,当我创建一个包含输入函数的变量时,它会自动打印出来。有没有办法阻止输入在变量中打印输出。
注意:当我希望它返回主菜单(再次打印出主菜单)时,我的代码中也会出现问题但是当生病时,它会被设置为1,2或者3。
这是我的代码:
import time
import sys
import winsound
start = str(input("bla"))
menu = int(input("bla0.5"))
levels_menu = int(input("bla1"))
settings_menu = int(input("bla2"))
credits_menu = int(input("bla3"))
if start == "":
print(menu)
if menu == "1":
print(levels_menu)
if menu == "2":
print(settings_menu)
if menu == "3":
print(credits_menu)
if menu == "4":
exit()
希望你能解决我的问题!
我想要的输出:
bla
*I press enter*
bla0.5
*I press 1*
bla2
*I press 4(because that will be the back to main menu number*
bla0.5
(and so forth, you can go through all the menus)
python版本:3.3.2
答案 0 :(得分:1)
看起来你对代码执行的时间感到困惑。 input
函数打印其参数然后等待输入。您将变量(start
等)定义为input
函数的返回值,因此一旦Python尝试定义所有这些变量,就会调用input
。
你想要什么是那些功能而不是变量。这样,您可以随时调用函数,并在那时获得适当的输入。像这样:
def start():
return str(input('bla\n'))
def menu():
return int(input('bla0.5\n'))
if start() == '': # CALL the function!
menuselection = menu() # Call the menu function
print('menuselection is:', menuselection)
if menuselection == 1:
pass # and so forth and so on
--- results ---
bla
(I press <ENTER>)
bla0.5
1
menuselection is: 1
答案 1 :(得分:0)
如果您希望在打印后返回到输入处,则必须将其全部置于循环中!