前言:
现时看官们对“怎么用python做一个游戏”大致比较注意,同学们都需要学习一些“怎么用python做一个游戏”的相关文章。那么小编也在网摘上汇集了一些对于“怎么用python做一个游戏””的相关文章,希望大家能喜欢,看官们快快来了解一下吧!本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理
写它会用到
while 循环
random 模块
if 语句
输入输出函数
源码先抛出来
import random #导入random模块,用来产生随机数times = 10 #设置我们的答题次数secret = random.randint(1,100) #随机给random一个1~9的数字,再给secret赋值print('---------------Python要和你玩猜数字游戏---------------')print('猜一个1-100之间的数')guess = 0 #设定guess的值while (guess != secret) and (times > 0): #结束条件,要么次数用完,要么答对。 guess = int(input("猜猜我想的是几:")) #用户输入,并转换为整数 times = times - 1 #用户每输入一次,猜数次数就-1 if guess == secret: #如果用户输入对了 print("恭喜你猜对了!") print("哼,猜中了也没有奖励!") break #跳出循环 else: if guess > secret: print("大了大了~~~")# 之所以不在这里设置重输,是因为在if times > 0: 中已经弄过了,这样避免输两次,也避免次数已用完还让重输 else: print("小了小了-_-") if times > 0: #判断次数是否用完 print("再试一次吧:", end=" ") else: print("机会用光咯T_T") print("我想的是"+str(secret)+"!") #揭晓答案print("游戏结束,不玩啦^_^")知识讲解random
#0## 介绍
Python中的随机数操作较简单,不像其他高级语言那样必须用特定的公式才能产生
语法
import random #导入模块random.方法() #调用方法方法参数表
目前我们用到的是randint()方法。
举例
>>> import random>>> random.randint(0,10)5>>> random.randint(0,10)2>>>while语法
while 循环条件: 语句举例
num = 0while num<3:#如果num小于3,就进入循环 num+=1 #等同num=num+1 print(num)
图:
拆分代码讲解产生随机数
import randomrandom.randint(0,100)
运行结果:
>>> random.randint(0,100)50>>> random.randint(0,100)28>>> random.randint(0,100)35>>> random.randint(0,100)15>>> random.randint(0,100)10>>> random.randint(0,100)27>>> random.randint(0,100)89>>> random.randint(0,100)43>>> random.randint(0,100)90>>> random.randint(0,100)16>>> random.randint(0,100)80>>>
现在我们可以产生随机数了,但是只有调用一次方法才能产生一次随机数,怎么办呢?对了,可以用循环来反复做相同的事。
循环产生随机数
import randomwhile True: random.randint(0,100)
运行结果:
682551447521702425953419596398931506069332843854306469949482495806983204892244851772523687084345686303912900363123345160268163887440556947448386633727681008820994947358074967842204449497153556751553987981961707658944773102229899533984415294781613717843184329648786691551281848202356Traceback (most recent call last): File "<pyshell#3>", line 2, in <module> random.randint(0,100)KeyboardInterrupt>>>
可以看到,它一直输出随机数,这并不是我们想要的,我们想要的是用户输入一个数,和这个随机数比对
增加循环条件和简单的判断
对上述采取的方法是:把产生的随机数存入变量,进行判断、比对
import randomsecret = random.randint(0,100) #产生随机整数guess = input('猜猜我想的是几:')#获取用户输入while guess!=secret:#当用户输入不等于产生的数时,进入循环 if guess>secret:#当用户输入的数大于随机数时 print("大了大了@_@")#打印提示文字 else:#当用户输入的数小于随机数时 print("小了小了>_<")#打印提示文字print("恭喜你答对了!")print("哼,对了也没有奖励!")print('游戏结束,不玩了~')
看似没有问题,我们来运行一下
运行后发现报错了:
猜猜我想的是几:12Traceback (most recent call last): File "C:/Users/Administrator/Desktop/aa.py", line 5, in <module> if guess>secret:#当用户输入的数大于随机数时TypeError: '>' not supported between instances of 'str' and 'int'
哦,原来是没有转换类型,input返回的是字符串,字符串不能和整数比较
改后:
import randomsecret = random.randint(0,100) #产生随机整数guess = int(input('猜猜我想的是几:'))#获取用户输入,并转化为整数while guess!=secret:#当用户输入不等于产生的数时,进入循环 if guess>secret:#当用户输入的数大于随机数时 print("大了大了@_@")#打印提示文字 else:#当用户输入的数小于随机数时 print("小了小了>_<")#打印提示文字print("恭喜你答对了!")print("哼,对了也没有奖励!")print('游戏结束,不玩了~')
运行:
小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<小了小了>_<Traceback (most recent call last): File "C:/Users/Administrator/Desktop/aa.py", line 8, in <module> print("小了小了>_<")#打印提示文字KeyboardInterrupt>>>
还是有问题!
解决报错&增加输错重输功能、限制用户输入次数功能
同学们想想,当打印提示语后,用户没有重输,会一直满足那个条件,就会循环打印。
那么我们可以增加重输功能,当输的不对时,就重输,就不会循环打印了;
添加限制用户输入功能,这样就避免用户一直猜
1.当然,因为又加了一个功能,答对了的提示就不能放在循环外面了,
2.之所以不在打印大了小了设置重输,是因为在if times > 0: 中已经弄过了,这样避免输两次,也避免次数已用完还让重输
import random #导入random模块,用来产生随机数times = 10 #设置我们的答题次数secret = random.randint(1,100) #随机给random一个1~9的数字,再给secret赋值print('---------------Python要和你玩猜数字游戏---------------')print('猜一个1-100之间的数')guess = 0 #设定guess的值while (guess != secret) and (times > 0): #结束条件,要么次数用完,要么答对。 guess = int(input("猜猜我想的是几:")) #用户输入,并转换为整数 times = times - 1 #用户每输入一次,猜数次数就-1 if guess == secret: #如果用户输入对了 print("恭喜你猜对了!") print("哼,猜中了也没有奖励!") break #跳出循环 else: if guess > secret: print("大了大了~~~")# 之所以不在这里设置重输,是因为在if times > 0: 中已经弄过了,这样避免输两次,也避免次数已用完还让重输 else: print("小了小了-_-") if times > 0: #判断次数是否用完 print("再试一次吧:", end=" ") else: print("机会用光咯T_T") print("我想的是"+str(secret)+"!") #揭晓答案print("游戏结束,不玩啦^_^")效果缺陷
没有设置输入限制,如果用户输入的是字母,那int转换就会报错;这个我就不写了,有兴趣的同学可以在评论区写一下。
私信小编01即可获取大量Python学习资料
标签: #怎么用python做一个游戏 #用python做一个游戏 #用python做个小游戏 #用python做简单游戏