2017-07-28 82 views
-2

所以我一直試圖在python中創建一個基本的文本遊戲,並且我使用這段代碼來不斷生成隨機數字,以便在某些函數中使用來決定玩家被破壞,玩家被攻擊等:while循環在python中初始代碼不可訪問

rng = random.randint(0,100) 
    while True: 
      rng = random.randint(0,100) 

實際顯示給用戶的,它要求如果玩家想打我的第一行代碼,就不會當我把循環運行在我的程序開始時生成隨機數字。 PyCharm說,代碼無法訪問。我該如何解決這個問題?下面是該行,供參考:

game = raw_input("Would you like to play? Y/N\n") 

當我運行程序時,除非我取出循環,否則屏幕上不會顯示任何內容。對不起,如果答案是顯而易見的,我只在python上工作了很短的時間。

+1

從我可以看,你的循環是無限的。真是永遠是真的,因此程序將進入循環,永遠不會爆發。 – Carter

+0

'當我運行程序時屏幕上沒有顯示,除非我取出循環。'然後取出循環。 –

+0

「我正在使用此代碼來不斷生成隨機數」 - 您是否有這樣的印象:Python會在後臺運行此循環,不斷替換「rng」的值,而其他代碼繼續執行其他操作?這不是如何工作的,即使你經歷了這個工作來實現這個循環與其他代碼同時運行,管理隨機數也是一種可怕的方式。 – user2357112

回答

0

正如所暗示的那樣,您的while循環將永遠運行並且沒有任何機制來打破while循環。

while True: 
    # do something 

這永遠不會停止,因爲while環路有效地做這個測試:

while True == True: 
    # do something 

如前所述,你最好做這樣的事情:

game = raw_input("Would you like to play? Y/N\n") 

# do stuff 
# AND NOW, simulating some of the items you mentioned... 

if random.randint(0, 100) > 70: 
    # enemy attacks 

if random.randint(0, 100) > 50: 
    # player experiences damage