2014-10-16 36 views
4

我想提出一個隨機數字猜謎遊戲,我想知道,如果當你的猜測是不是比它會打印出類似這樣的回答少3個或更多的「關閉!答案是(答案)」有沒有一個命令,以便當有些事情比事情的回答少3個或多3個時,它會做些什麼?

import random 
while True: 
    dicesize = raw_input('What size die do you want to guess from?>') 
    number = random.randrange(1, int(dicesize)) 
    guess = raw_input('What is your guess?>') 
    if int(guess) == number: 
     print 'Correct!' 
     print " " 
     # less than 3 print "close"? 
     # more than 3 print "close"? 
    else: 
     print 'Nope! The answer was', number 
     print " " 

(我有打印「」使每個環之間有一個空格)

+0

你可以只用'如果-3 <(數猜)<3'。或者,如果abs(猜數)<3'表示「少於或少於3個」。或者只是將英語幾乎直接翻譯成Python:如果猜測 answer + 3'說「如果你的猜測少於3或者你的猜測是3多」。 – abarnert 2014-10-16 21:34:36

回答

5
while True: 
    dicesize = raw_input('What size die do you want to guess from?>') 
    number = random.randrange(1, int(dicesize)) 
    guess = int(raw_input('What is your guess?>')) 
    if guess == number: 
     print('Correct!') 
     print(" ") 
    elif abs(number-guess) < 3: 
     print("Close") 
    else: 
     print('Nope! The answer was', number) 

剛剛獲得absolute valueabs(number-guess),將覆蓋這兩種情況下,如果猜測是小於3的上方或下方的號碼。

In [1]: abs(10-7) 
Out[1]: 3 

In [2]: abs(7-10) 
Out[2]: 3 
2

更簡單地說,使用鏈接條件句

if number-3 < guess < number+3: 
    print("Close") 
相關問題