目录

前言

一、前景回顾

二、思路讲解

三、猜数字2.0介绍

四、猜数字2.0源程序

五、程序讲解

1、基础部分

(1)while循环与for循环

(2)数值大小判断

2、再来一局

总结


前言

让大家久等啦,大家看完上次的小程序一定意犹未尽吧!那么今天我就给大家带来了更高级更好玩的小程序!快来跟着我的脚步一起来看一看吧!


一、前景回顾

这么久了大家一定忘记了猜数字1.0是什么样子的了吧,或者屏幕前的你也许是第一次看到我的文章,一定不知道之前的猜数字1.0是什么样子的对吧!那么我们就简单的来做个回顾吧!

我们来一起看一下猜数字1.0的运行效果:

这就是猜数字1.0的运行效果啦!大家先熟悉一下,有没有想起来什么呢?


二、思路讲解

回顾完猜数字1.0之后,那么大家一定好奇我是怎么做出了这个小程序了,那么我们就一起来看一看吧!

首先我先要把思路理清,那么我就边画流程图边理清思路,下面就是我制作本程序之前绘制的流程图了,大家可以跟着我的思路来看一下流程图!

你在输入姓名后,程序输出规则,那么你就要开始猜测数字了。那么如果你在猜测次数之内猜完那肯定是皆大欢喜,就会恭喜你猜的很准确,你也可以开心的重新再玩一局。可是如果你没有在猜测次数之内猜对怎么办呢?那你也不必灰心与难过了,因为我会鼓励你重新再来一局!


三、猜数字2.0介绍

看完流程图与我的讲解,那你再去看猜数字1.0的运行结果,相信你一定会发现它是有一些不足之处的。那就是不管你是猜对了还是猜错了,猜数字1.0时我都不会再让你重新在玩一局。

然而猜数字2.0就主要弥补了这一点问题,那么我们就一起来看一看猜数字2.0的运行结果吧!

这里我分别进行了两次猜测,大家可以看到的是,不管我在猜测次数用完之前猜对了还是说我在猜测次数用完之前也没有猜对,我都会要问一问你是不是要再来试试!


四、猜数字2.0源程序

看完猜数字2.0的运行结果,你是不是感觉这与1.0有所完善呢?

那么你也一定好奇这么有趣的小程序的源代码是什么样子的吧!那我们就一起来看一看吧!

# 猜数字游戏2.0
# 导入random模块
import random
# 定义循环次数
i = 0
# 将玩家名字进行赋值
name = input('你好呀,我是智能机器人小白,你叫什么名字呀!\n')
# 输出游戏规则
print(f'''{name}你好!很高兴认识你!这是一个猜数字的游戏!
下面我和你说说规则吧!
你可以在1~40之间选择一个数字
并且你有5次机会回答
不要输入不在范围外的数字哟
不然会浪费掉一次机会的呢
机会有限好好珍惜呀!
快来试试吧!''')
# 利用死循环实现再来一局
while True:# 将要猜测的随机数进行赋值number = random.randint(1, 40)# 利用while循环,使玩家可以猜测5次# while i < 5:# 利用for循环,使玩家可以猜测5次for i in range(5):# 使用户输入数字并进行赋值guess = int(input('输入你猜测的数字,让我来看看你猜的对不对!\n'))# 运用if语句通过条件,判断玩家输入的数字是否在范围内(自己添加,切记)if guess < 1 or guess > 40:print('你输入的数字不在范围内还浪费掉了一次机会,好可惜呀')# 运用if语句通过条件,判断是否猜小了elif guess < number and i != 4:print('你猜小了呦,再试试叭!')# 运用if语句通过条件,判断是否猜大了elif guess > number and i != 4:print('你猜大了呦,再试试叭!')# 运用if语句通过条件,判断是否为5次都猜错了elif guess != number and i == 4:print(f'很遗憾你用完了5次机会都没答对,正确答案是{number},重新开始游戏再试试叭!')# 运用else输出玩家几次回答正确,并运用break退出循环else:print(f'{name}你真厉害,只用了{i + 1}次机会就回答正确啦!没错它就是{number}!')break# i自加1i += 1# 询问玩家是否要在再来一局again = input('是否要重新开始,与我一起快乐的玩耍呢?\n')# 利用条件判断,如果玩家输入为“是”,则将i的值初始化实现再来一次if again == '是':i = 0# 如果玩家输入的不为“是”,则提示玩家并利用break退出循环else:print('那好吧,小白在这里等着你哟~')break

大家看完源代码之后是不是会找到一点点感觉呢?大家可以先自己思考一下,或者也可以打开我的上一篇博客回顾一下猜数字1.0的源代码,来看一看为什么我可以做到让它来问你要不要重新开始呢?它又是如何重新开始的呢?


五、程序讲解

大家有没有想到我是如何做到的呢?来和我看一看和你想的一样不一样吧!

1、基础部分

(1)while循环与for循环

首先我在循环内做了一个while循环和for循环的兼容,在程序当中就是这里了:

# 定义循环次数
i = 0
# 利用while循环,使玩家可以猜测5次
while i < 5:
# 利用for循环,使玩家可以猜测5次
for i in range(5): ……# i自加1i += 1

由于for循环首次循环 i 的值为 0 ,所以在对whine循环中对 i 的初始值一定也要是 0 ,不然就会出现两种循环只能用一个的结果。

注意:在切换循环语句之后一定要将另一个循环注释掉,不然会因为缩进不规范而报错!

(2)数值大小判断

这里运用到的就是多重判断语句,语句语法非常简单,并且在上一篇博客已经给大家介绍过了,所以在这里就不过多介绍了。

        # 运用if语句通过条件,判断玩家输入的数字是否在范围内(自己添加,切记)if guess < 1 or guess > 40:print('你输入的数字不在范围内还浪费掉了一次机会,好可惜呀')# 运用if语句通过条件,判断是否猜小了elif guess < number and i != 4:print('你猜小了呦,再试试叭!')# 运用if语句通过条件,判断是否猜大了elif guess > number and i != 4:print('你猜大了呦,再试试叭!')# 运用if语句通过条件,判断是否为5次都猜错了elif guess != number and i == 4:print(f'很遗憾你用完了5次机会都没答对,正确答案是{number},重新开始游戏再试试叭!')# 运用else输出玩家几次回答正确,并运用break退出循环else:print(f'{name}你真厉害,只用了{i + 1}次机会就回答正确啦!没错它就是{number}!')break

这就是其中的多重判断了,那么其中的数值比较也是非常简单,不过其中那些 i != 4 的条件是什么意思呢?

它们是为了防止在最后一次猜测的时候也会输出猜大或者猜小这句话而出现的。

而需要注意的是由于程序是从上到下执行的,所以第一个判断只能是判断数值不在范围内,不然程序先判断猜大或者猜小,程序就会输出猜大或者猜小,因为条件已经满足!

2、再来一局

那么我们是如何实现再来一局的呢?

# 导入random模块
import random
……
# 利用死循环实现再来一局
while True:# 将要猜测的随机数进行赋值number = random.randint(1, 40)……# 询问玩家是否要在再来一局again = input('是否要重新开始,与我一起快乐的玩耍呢?\n')# 利用条件判断,如果玩家输入为“是”,则将i的值初始化实现再来一次if again == '是':i = 0# 如果玩家输入的不为“是”,则提示玩家并利用break退出循环else:print('那好吧,小白在这里等着你哟~')break

我首先运用了死循环while True来实现程序可以一直重复执行,当然这里的True也可以换做为除0之外的整数,因为在Python当中已经规定0代表False,其余整数为True。

之后我又运用了条件判断来判断你输入的是不是“是”,如果是“是”那么程序就会将 i 的值初始化为0,之后再次进入循环再来一局。

如果你输入的是“否”,程序则将会利用break退出程序。

这里要注意的是:

一定要将随机数的调用与赋值语句放在while True里面,不过也不能放到嵌套的循环里面。如果随机数的调用与赋值语句放在死循环外面,那么你想再来一局之后会出现要猜测的数值与第一次一样,没有改变;如果随机数的调用与赋值语句放在嵌套的循环里面呢,则会出现每次你输入猜测的数字的时候,要猜测的数值每次都会改变。


总结

以上内容就是猜数字2.0了,相对于猜数字1.0来说虽然提升不大,但是很有意义,大家有没有感觉这个猜数字2.0更加的智能而又人性化了呢?

最后还要感谢大家的浏览!如果大家对我的讲解内容以及程序如有疑问欢迎大家在评论区留言指出,我会积极的与大家进行互动;如果大家喜欢我的文章也欢迎大家点赞,我们一起探讨,一起学习!

Python之有趣的小程序——猜数字2.0相关推荐

  1. Python之有趣的小程序

    目录 前言 一.阶乘计算器 1.运行结果 2.源代码 3.知识点 (1)while的语法 (2) 注意 二.斐波那契数列 1.运行结果 2.源代码 3.知识点 三.猜数字游戏 1.运行结果 2.源代码 ...

  2. python编有趣的小程序_有趣的python小程序

    有趣的python小程序 1.密码生成器x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZXC ...

  3. 微信小程序猜数字小游戏

    用户输入1-100之间的数字,根据结果提示用户猜的大小,如果用户猜对可以重新开始(还可以设置猜的次数) 效果图 点击开始游戏界面 游戏规则界面 关于其他界面 我的首页(效果图)使用的是index03 ...

  4. 微信小程序——猜数字游戏小案例

    文章目录 项目展示 项目链接 项目设计 项目展示 项目链接 https://download.csdn.net/download/weixin_45525272/17043459 项目设计 关于于规则 ...

  5. 有趣的小游戏——猜数字

    目录 游戏规则 准备工作 代码实现 游戏规则 设置一个随机数,让玩家猜这个数字,当玩家进行猜数字时希望可以告诉玩家猜的数字是猜大了还是猜小了,如果猜对了可以提示一下玩家猜对了然后结束游戏,或者再来一局 ...

  6. python有趣小程序-小码王分享python一些有趣的小程序

    现在有很多女性朋友都在抱怨,程序员不懂浪漫,觉得很无味,谈恋爱都没有任何的激情,特别的单调,在这里南京小码王少儿编程培训机构老师,可要为这些叫屈了,现在还在学习编程,以后说不定会是一个非常浪漫的人哦! ...

  7. 【入门级C语言程序 -- 猜数字】Guess Number Game

    今天小玄给大家带来一个简单的C语言小程序 -- 猜数字的游戏. 其中主要涉及到的要点是随机数的产生 : 首先需要引入头文件 :<stdlib.h>  <time.h> 然后去使 ...

  8. python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!

    原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...

  9. 【编程DIY】一.几个有趣的小程序

    系列前言 兴趣是最好的老师.本系列介绍一些非常容易上手编写的小程序,这些小程序给博主的学习之路带来了许多欢乐,特记录分享! 编程语言:C语言 编程环境:Visual Studio 2019 本篇预备知 ...

最新文章

  1. 2017android开发找不到工作,揭秘蒋多多2017生活现状,30岁找不到工作曾绝望自杀...
  2. mysql的覆盖索引原理_「Mysql索引原理(七)」覆盖索引
  3. 统计分析SQL Server Profiler 跟踪的SQL
  4. C语言中单目运算符的结合方向是,C语言运算符的结合性
  5. 高效掌握新技能的「树型思维」
  6. 剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境
  7. mysql 缓冲区_mysql 线程级别的缓冲区
  8. 在Blazor中构建数据库应用程序——第6部分——向天气应用程序添加新记录类型及其UI
  9. Tomcat打开远程调试和jmx远程监控
  10. 解决VIM打开U盘文件中文乱码的问题以及VIM有用的配置
  11. Nachos操作系统-文件系统添加多级目录
  12. js 跨域下载链接 下载文件 实现重命名,文件名称 兼容处理
  13. excel转置怎么操作_Excel----选择性粘贴,工作中必须学会的技能
  14. element-ui tabs标签嵌套使用时 基础下划线不显示的问题
  15. 使用网页操作助手制作自己的火车票抢票工具
  16. 手机上的计算机黑屏怎么办,手机黑屏是怎么回事,教您苹果手机黑屏怎么办
  17. python IDE环境
  18. 企业如何建立商业生态系统
  19. MySQL数据库练习2
  20. 使用python pip安装PyQt5时遇到的不能安装d3dcompiler_47.dll错误

热门文章

  1. 谷歌Flutter1.0正式版发布
  2. 突发!IBM 中国研究院倒闭了,码农:又少了一个上岸养老的地方,搞科研的打不过搞996的...
  3. python建站部署_记录一下自己的建站过程(四)MongoDB与Pymongo
  4. JavaScript 判断对象中属性的值是否空,如果为空,则删除该属性
  5. Qt编写视频播放器(vlc内核)
  6. 吾“两年”一省吾身,于2018结束之际立flag
  7. 《例学Symbian手机开发》已由铁道出版社出版
  8. MYSQL cmd命令行大全
  9. GULP和Webpack比较
  10. 在cadence集成calibre