上篇我们给出了一个简单的猜数游戏,还有很多不足的地方:

(1)输入的时候当我们输入其他非数字的字符时,系统会报错,因为非数字字符无法转换为整数,那么我们如何修改可使程序更加健壮呢?为了解决这个问题我们先来了解一下python中的input输入函数。

在python2中从控制台接收输入的方式有两种:input()和raw_input(),当输入为纯数字时

  • input返回的是数值类型,如int,float

  • raw_inpout返回的是字符串类型,string类型

输入字符串为表达式

input会计算在字符串中的数字表达式,而raw_input不会。

如输入 “57 + 3”,input会得到整数60,而raw_input会得到字符串”57 + 3”

在python3中将raw_input与input进行了合并,只有input函数接收控制台的标准输入,返回的类型为str,即使你输入的是纯数字也会转换为str类型,因此我们需要进行类型转换。


spacer.gif游戏的改进

在输入非数字的字符时,能够给出提示,并继续执行。

本人刚接触python,能力有限,目前只实现了给出提示这一功能


import random
num=random.randint(0,10)

print('--------哈哈工作室----------')
def strToint(temp):
    try:
        g=int(temp)
        return g
    except:
        print('出错啦!请输入一个非0数字哦')
temp=input('输入一个非0数字吧:')
guess=strToint(temp)
n=0
while(guess!=num and n<2):
    if(guess>num):
        print('大了大了,你还有'+(str)(2-n)+'次机会哦')
        n=n+1
    else:
        print('小了小了,你还有'+(str)(2-n)+'次机会哦')
        n=n+1
    temp=input('再猜一个数字吧:')
    guess=int(temp)
if(n==2):
    print('太遗憾了,你已经没有机会了')
else:
    print('你太厉害了,猜对了!')
print("游戏结束")

待更进……