龙空技术网

一听就懂:用Python做一个超简单的小游戏

流光易趣图 463

前言:

现时看官们对“怎么用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做简单游戏