Python实现简单猜数字游戏

作者:Ainke 时间:2021-03-22 14:31:50 

本文实例为大家分享了Python实现简单猜数字游戏的具体代码,供大家参考,具体内容如下

一、需求分析

编写一个猜数字游戏,游戏规则:计算机给出一个1-20的之间的随机数字,让玩家来猜猜它是几,计算机会告诉你每次猜出的数字或大或小,如在6次内猜到正确数字,即赢了。

二、编写思路

1.首先导入random随机模块 ,然后定义随机数的范围,然后定义次数。

2.使用while循环来判断是否符合随机数和输入数值的比较,并且设置次数递减

3.使用 isdigit 函数来完成判断玩家数据类型,避免报错。

4.使用if else 流程控制语句即玩家输入数字比随机数大则提醒玩家数字大,反之则小并且提醒玩家剩余几次机会。

5.最后编写输入机会用完猜对则游戏结束,猜错则提醒机会用完,并且公布电脑给出的随机数答案。

三、问题

1.如何来判断玩家输入的数据类型来避免报错?

解决:使用isdigit函数来判断玩家输入的数据类型是否为数字,是则继续运行反之则提醒玩家输入的内容不合法。

2.如何限制玩家输入字符的数量?

解决:定义一个最大常量和最小常量,超出最大常量或者最小常量则会提醒玩家输入内容的范围。

四、代码


import random # 导入随机模块
times = 6 # 定义尝试次数
game = random.randint(0, 20) # 定义随机数范围
max = 20 # 定义最大常量
min = 0 # 定义最小常量
print('猜一猜我心目中的数字(0-20之间):')
print('你有%d次机会:' % times)

while times > 0: # 循环判断如果有机会往下运行
times = times - 1 # 次数递减
str = input() # 输入数值
if not str.isdigit(): # 判断数据类型 输入的是不是数字
print('您输入的数据:' + str + '不合法,请重新输入我心目中的数字(0-20)之间,还有%d次机会' % times)
else:
guess = int(str)
if guess == game: #玩家输入与随机数相同
 print('猜对了!')
else:
 if guess > max: #玩家输入大于猜测随机数范围
 print('输入无效!请输入%d到%d之间的数字,还有%d次机会.' % (min, max, times))
 continue
 if guess > game: #玩家输入大于随机数
 print('您输入的数字大了!还有%d次机会' % times)
 else:  
 print('您输入的数字小了!还有%d次机会' % times)
 if times > 0: #还有次数
 print('在尝试一次吧')
 else:
 print('没机会了')
 print('我心目中的数字是%d' % game)
print('游戏结束!')

五、感悟

通过本次的项目练习,我感觉自己收获还是很大的,不仅考验了自己对基础知识的掌握程度,而且和同学在讨论中也发现了更多的问题并且学会解决问题,然后在师父的验收过程中也发现了代码可以调优完善的地方,最后在纪老师验收的过程中,通过看其他同学的代码和自己的代码来对比可以发现一些自己所不了解的知识及语法,老师也提了很多的问题,并且提供了更多的思路,例如代码里曲线 背景快出现的原因,以及如何设计游戏更多的乐趣,然后以后完成项目还可以使用PPT,因为这样可以更清楚更便于自己或者同学来理解,使我受益匪浅,在自己解决问题的过程中也学会了一些更多的函数用法,例如如何判断数据类型,通过在网上搜索学习了这个函数,我也对类似的这种函数进行了解:

s为字符串

s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。

s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。

s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。

s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。

s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。

s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。

s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。

来源:https://blog.csdn.net/Ainwa/article/details/113527407

标签:python,猜数字
0
投稿

猜你喜欢

  • Go Redis客户端使用的两种对比

    2024-05-09 09:31:15
  • python数组循环处理方法

    2023-08-03 16:36:19
  • Python中GIL全局解释锁的实现

    2023-04-27 16:29:14
  • Golang递归获取目录下所有文件方法实例

    2024-04-25 15:19:00
  • request基本使用及各种请求方式参数的示例

    2021-03-31 02:32:52
  • 支持PyTorch的einops张量操作神器用法示例详解

    2023-10-17 23:13:06
  • 解决Python requests 报错方法集锦

    2023-05-05 20:21:27
  • 在Go语言中使用JSON的方法

    2024-04-25 15:26:04
  • python安装教程 Pycharm安装详细教程

    2022-08-08 02:25:55
  • golang组件swagger生成接口文档实践示例

    2023-09-19 11:29:39
  • Pytorch实现Fashion-mnist分类任务全过程

    2023-07-14 05:12:47
  • Java采用setAsciiStream方法检索数据库指定内容实例解析

    2024-01-28 18:40:33
  • SQL参数化查询的另一个理由 命中执行计划

    2012-08-21 10:31:16
  • Tortoise-orm信号实现及使用场景源码详解

    2021-12-18 23:01:45
  • windows下安装python paramiko模块的代码

    2021-05-11 03:11:23
  • vue中watch监听不到变化的解决

    2024-04-30 10:41:33
  • vue-Split实现面板分割

    2024-04-27 15:49:43
  • Python中的面向对象编程详解(上)

    2021-10-12 14:33:45
  • MySQL Innodb关键特性之插入缓冲(insert buffer)

    2024-01-22 20:58:16
  • 從無到有實現一個xml數據庫登錄驗証

    2008-09-05 17:12:00
  • asp之家 网络编程 m.aspxhome.com