2013-12-12 61 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