如何阻止打印变量

时间:2013-12-12 19:51:50

标签: python variables python-3.x input

我是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

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)

如果您希望在打印后返回到输入处,则必须将其全部置于循环中!