2012-07-16 122 views
2
import random 

def main(): 
    the_number = random.randint(1,100) 
    guess = 0 
    no_of_tries = 0 
    while guess != the_number: 
     no_of_tries += 1 
     guess = int(input("Enter your guess: ")) 
     if guess < the_number: 
      print "--------------------------------------" 
      print "Guess higher!", "You guessed:", guess 
      if guess == the_number - 1: 
       print "You're so close!" 
     if guess > the_number: 
      print "--------------------------------------" 
      print "Guess lower!", "You guessed:", guess 
      if guess == the_number + 1: 
       print "You're so close!" 
     if guess == the_number: 
      print "--------------------------------------" 
      print "You guessed correctly! The number was:", the_number 
      print "And it only took you", no_of_tries, "tries!" 

if __name__ == '__main__': 
    main() 

现在,在我的随机数字猜谜游戏,如果一个人猜测较低或较高的一个号码,他们会收到以下消息:Python字符串格式化问题

Guess lower! You guessed: 33 
You're so close! 

但我想让它一个句子。

例如:

Guess lower! You guessed: 33. You're so close! 

我怎么会在我的代码实现这一点?谢谢!

回答

6

只要在print声明后加一个逗号(','),如果你想避免它前进到下一行。例如:

print "Guess lower!", "You guessed:", guess, 
             ^
              | 

print声明将在此行即末尾添加了产量,也不会向下移动到下一行的开始,你目前有。

更新再下面评论:

为了避免空间由于逗号,你可以使用print function。即,

from __future__ import print_function # this needs to go on the first line 

guess = 33 

print("Guess lower!", "You guessed:", guess, ".", sep="", end="") 
print(" You're so close!") 

这将打印

Guess lower!You guessed:33. You're so close!

有关打印功能此PEP也会谈

+0

谢谢,但如果想要把一个时期的消息之前,像“你太亲密了!”,33和。之间没有差距吗?有没有办法连接它们? – 2012-07-16 23:55:43

+0

@ShankarKumar查看最新的答案。 – Levon 2012-07-17 00:02:05

+0

谢谢你的回答! – 2012-07-17 00:08:10