今天学习Python语言的时候写了个“猜数字”的小程序,就贴出来和大家分享一下,也给自己做个记录。
1.简易版“猜数字”游戏,系统随机产生一个0-9的整数,判断用户输入的数字是否正确。
初始代码:
#coding:utf-8
import random
s=random.randint(0,9)#生成一个随机的0-9的整数
n=input("请输入您猜的数字>>")#输入一个猜的0-9的整数
if n < 10 and n >= 0:
if n==s:
print("恭喜您猜对了,答案为",s)
else:
print("猜错了,答案为",s)
else:
print("请输入0-9的整数>>")
运行后,输入1,报错:(如下图示)
通过查阅相关资料,发现报错的原因是:因为input()返回的数据类型是str,不能直接和整数进行比较,必须先把str换成整数,这里我们可以使用int()函数来实现。
修改后的代码:
#coding:utf-8
import random
s=random.randint(0,9)
n=int(input("请输入您猜的数字>>"))
if n < 10 and n >= 0:
if n==s:
print("恭喜您猜对了,答案为",s)
else:
print("猜错了,答案为",s)
else:
print("请输入0-9的整数>>")
或者
#coding:utf-8
import random
s=random.randint(0,9) #生成一个随机的0-9的整数
n=input("请输入您猜的数字>>")#输入一个数字
l=int(n)
if l <10 and l >=0:
if l == s:
print("恭喜您猜对了!")
else:
print("很遗憾猜错了,正确答案为", s)
else:
print("请输入0-9的整数>>")
运行后同样输入整数1,无错误,结果如下:
2.改良版“猜数字”游戏,系统随机生产一个0-9的整数,用户输入一个数字,直到猜对为止!
源代码:
#coding:utf-8
import random
s=random.randint(0,9)
n=int(input("请输入您猜的数字>>"))
while True:
if n < 10 and n >= 0:
if n == s:
print("恭喜您猜对了,答案为", s)
break
else:
if n > s:
n = int(input("猜大了,再猜>>"))
else:
n = int(input("猜小了,再猜>>"))
else:
n=int(input("请输入0-9的整数>>"))
3.优化版“猜数字”游戏,系统随机生产一个0-9的整数,允许用户猜四次,限定次数内猜对为赢,超过四次还未猜对则判定为输,游戏结束!(若用户输入的数不在0-9整数范围内视为错误,并且不计入竞猜次数)
源程序:
#coding:utf-8
import random
s=random.randint(0,9)
a=0
n=int(input("请输入您猜的数字>>"))
while True:
if n < 10 and n >= 0:
if n == s:
print("恭喜您猜对了,答案为", s)
break
else:
if n > s:
n = int(input("猜大了,再猜>>"))
else:
n = int(input("猜小了,再猜>>"))
else:
n=int(input("错误:请输入0-9的整数,您已经猜了%a次,还有%s次机会>>" %(a,4-a)))
continue
if a == 3:
print("游戏结束,你失败了!!!答案为", s)
break
else:
pass
a += 1
4.趣味版“猜数字”游戏,系统随机生产一个0-9的整数,用户基本赢不了
#coding:utf-8
import random
while True:
s=random.randint(0,9)
n=int(input("请输入一个0-9的整数>>"))
if n==s:
while True:
s=random.randint(0,9)
if n==s:
pass
else:
break
print("很遗憾,您猜错了!正确答案是",s)