Python第三章 猜数字游戏bug修正

  • 文件导入shelve时不需要后缀
#!/usr/bin/env python
# coding: utf-8
#copyRight by heibank
import random
secret = random.randint(1, 100)
guess,tries = 0,0

print u"你好, 你很幸运, 我是一个路过的神仙, 我有一个秘密!"
print u"我的秘密是一个从1到99的数字, 我只会给你6次机会来猜。"
print u"如果你猜到它, 那说明你真的很幸运, 赶紧去买彩票吧!"

while guess != secret and tries <6:
    print u"你猜这个数字是多少? (1-100)"
    guess = raw_input()

    try:
        guess = int(guess)
    except:
        print u"输入的不是整数"
        continue

    if guess == secret:
        print u"哇~~~, 真的假的!你居然发现了我的秘密! 它就是: ", str(secret)
        break
    elif guess < secret:
        print str(guess),u"太小了, 你还差点运气! "
    elif guess > secret:
        print str(guess),u"太大了, 你还差点运气! "
    tries += 1
else:
    print u"你唯一的机会已被你用完了!看来你还需要再攒点人品!"
    print u"还是让我告诉你吧!这个数字是: ", str(secret)
  • input(), raw_input() 均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError

  • raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float );同时在例子 1 知道,input() 可接受合法的 python 表达式,举例:input( 1 + 3 ) 会返回 int 型的 4 。

  • import random :调用random库
    random.randint(a,b):在a,b范围上随机取一个整数

  • continue使得再次程序进入try模块

try:
        guess = int(guess)
   except:
        print u"输入的不是整数"
        continue

你可能感兴趣的:(Python第三章 猜数字游戏bug修正)