2013-12-12 63 views
-1

即时通讯新的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

当然'print()'会打印您的选择..这正是代码应该做的。 – fuesika

+0

这是你的实际码?菜单在哪里定义? – Kevin

+0

对不起,我一定已经删除它(现在添加它),但pyStarter打印命令是我想要使用,但因为我创建了变量,它打印出来,如果我达到条件或不(在任何if语句) 。 – Flaky

回答

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