2017-09-02 60 views
0

我想弄清楚爲什麼任何以'y'開頭的輸入都會讓這個遊戲繼續運行....看着它只出現'y'或'yes'的代碼應該保持它運行,但是我可以輸入'yensdg','yyyy'等,它仍然會循環。骰子模擬器輸入 - Python

任何想法?由於

from random import randint 
repeat = True 
while repeat: 
    print('You rolled', randint(1,6)) 
    print('Do you want to roll again?') 
    repeat = ('y' or 'yes') in input().lower() 
+0

@vaultah如果我有一美元每次有人得到了與抓在python中失敗的僞自然語言語法... –

+2

input()。lower()中的'y',如果輸入字符串中的任何位置存在'y',則此語句將返回true。就像輸入是'thisisarandominputwithy'一樣,它會返回true,因爲它最後有'y'。 –

+2

將最後一行更改爲:repeat = input()。lower()in ['y','yes'] –

回答

1

的 '是' 輸入()。低(),如果 'Y' 是存在於輸入字符串的任何地方這條語句將返回true。就像如果輸入的是「thisisarandominputwithy」,它會返回true,因爲它具有「Y」到底

更改最後一行:

repeat = input().lower() in ['y', 'yes']