python学习:实现猜数游戏和汉诺塔问题的解决

实现猜数游戏

规则:
计算机随机产生一个0~100的预设数字,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了“;小于预设的数,显示”遗憾,太小了“,如此循环,直至猜中该数,显示”预测N次,你猜中了“,其中N是用户输入数字的次数。当用户输入的不是整数(如字母、浮点数)时,程序会终止执行退出,并给出“输入内容必须为整数!”的提示,并让用户重新输入。
代码与运行结果:(注:输入出错,则此次不算到猜的次数里)

num = random.randint(0, 101) # 生成随机数
count = 0
flag = 1
while 1:
    try:
        count += 1
        guess = int(input("请输入你猜的数字:"))
    except:
        print("输入内容必须为整数!")
        count -= 1
        flag = 0
    if flag:
        if guess == num:
            print("预测%d次,你猜中了" %count)
            break
        elif guess > num:
            print("遗憾,太大了")
        else:
            print("遗憾,太小了")
    else:
        flag = 1

运行结果截图:
在这里插入图片描述

解决汉诺塔问题

汉诺塔问题,设置三个柱子A、B、C,刚开始时所有的盘子都在A柱上,并且从上到下的盘子序号为1、2、3…目标是将所有盘子从A柱上移动至C柱上,对于n层汉诺塔,我们可以看成要先将最下面的一个盘子移动到目标柱,将n-1层盘子移动到中间柱上,同时n-1层的汉诺塔我们可以采用相同的方法分析,显然这是递归的。
代码与运行结果如下:

count = 0
def hanoita(layer, start, end, middle):
    global count
    if layer!=1:
        hanoita(layer-1, start, middle, end)
    count = count + 1
    print("第%d次移动,把第%d号盘子从%s移动到%s"%(count, layer, start, end))
    if layer!=1:
        hanoita(layer-1, middle, end, start)
hanoita(3, "A", "B", "C")

运行结果截图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/300506.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】数据库之MMM高可用

目录 一、什么是MMM 二、关于MMM架构的说明 三、实操MMM的高可用 步骤一:完成主主复制、主从复制 步骤二:所有节点服务器都安装mysql-mmm,并完成mmm_common.conf文件的配置 步骤三:完成monitor节点服务器的配置文件修改mmm_mon.conf 步…

基于SSM的基金投资交易管理网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

K210基础实验系列

CanMV K210 开发板: CanMV K210 是由 01Studio 设计研发,基于嘉楠科技边缘计算芯片 K210 ( RSIC V 架构, 64 位双核)方案的一款开发板,采用硬件一体化设计( K210 核心板、 摄像头、 LCD 集成在一个…

mysql进阶-重构表

目录 1. 原因 2. 如何重构表呢? 2.1 命令1: 2.2 命令2: 2.3 命令3: 1. 原因 正常的业务开发,为什么需要重构表呢? 原因1:某张表存在大量的新增和删除操作,导致表经历过大量的…

深入了解Snowflake雪花算法:分布式唯一ID生成器

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

JVM中对象的创建

一.JVM运行流程 JVM向操作系统申请内存,初始化运行时数据区,接下来装载使用的类,执行类里面相应方法的时候为当前虚拟机栈压入一个栈帧,方法执行完成后栈帧出栈,进行垃圾回收。 二.JVM中对象的创建过程 符号引用&…

MySQL数据库进阶-事务

事务 事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的。而整个单独单 元作为一个不可分割的整体,如果单元中某条SQL语句一 旦执行失败或产生错误,整个单元将会回滚。所有受到影 响的数据将返回到…

端云协同,Akamai 与快手联合落地 QUIC 提升海外用户视频体验

10月10日,负责支持和保护数字化体验且深受全球企业信赖的解决方案提供商阿卡迈技术公司( Akamai Technologies, Inc.,以下简称:Akamai )( NASDAQ:AKAM )携手全球领先的短视频记录和分享平台快手(HK:1024)通过全面落地 …

【LeetCode】150. 逆波兰表达式求值(ASCII码)

今日学习的文章链接和视频链接 leetcode题目地址:150. 逆波兰表达式求值 代码随想录题解地址:代码随想录 题目简介 即将后缀表达式转换成中缀表达式并计算。 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 …

【无线通信专题】NFC通信模式及可能的应用方式

在文章【无线通信专题】NFC基本原理中我们讲到了NFC工作模式。其中NFC工作模式主要有三种,读写模式、卡模拟模式、点对点模式。 NFC通信模式丰富,NFC Forum定义了三种NFC设备:通用NFCForum设备、读写器设备和标签设备。这些NFC设备可以在三种通信模式下运行,并对应用案例进…

【DevOps-05】Integrate工具

一、简要说明 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。 二、Jenk…

Java Base64简单介绍

1. Base64工具 工具链接 2. Base64示例代码 public class Base64Demo {// 请注意,在处理二进制数据时(例如图片或文件),不需要将字节数组转换为字符串再进行编码或解码,// 可以直接对字节数组进行Base64操作。上述…

【前端设计】文字聚光灯

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 案例 文字聚光灯效果可以用于网站标题 html <!DOCTYPE html> <html lang"en&quo…

File与Io流

IO&#xff08;Input/Output&#xff09;是指计算机与外部世界进行数据交换的过程。在程序中&#xff0c;IO通常用于读取输入数据或将输出数据写入到外部设备或文件中。 Java的IO库主要分为两种类型&#xff1a;字节流和字符流。 字节流&#xff08;Byte Stream&#xff09;&a…

FreeRTOS移植详解

一、前言 本文旨在讲解FreeRTOS在STM32单片机上的移植步骤&#xff0c;对于FreeRTOS在其他单片机上的移植已具有一定的参考意义。相信读者在看完这篇文章后&#xff0c;一定会有所收获&#xff01; 文末附有相关资料连接&#xff0c;有需要的读者可以自行下载。 二、FreeRTOS源…

各银行小微企业信贷相关产品和机器学习建模案例

各银行小微企业贷款业务 互联网的时代&#xff0c;大量新信息技术的涌现和网络的无处不在&#xff0c;想要抢占这片金融天地&#xff0c;必须重视小微金融业务&#xff0c;小微企业是一直具有重大潜力的客户&#xff0c;商业银行、消金公司发展小微信贷业务可以拓宽自身客户群…

NOSQL与REDIS配置与优化

目录 一、关系数据库与非关系型数据库 1.关系型数据库 2.非关系型数据库 3.关系型数据库和非关系型数据库区别 4.非关系型数据库产生背景 二、Redis 1.Redis介绍 2.Redis 优点和使用场景 三、Redis 安装部署 1.环境准备 2.安装redis 3.修改配置文件 4.定义systemd服…

超声波模块的驱动(STM32、51单片机等)

一、前言 本文旨在分享单片机对超声波模块的驱动&#xff0c;测量距离和显示 二、超声波的驱动 1、超声波模块 2、模块性能 &#xff08;1&#xff09;TCT40-16T/R1 压电陶瓷超声传感器&#xff08;通用型&#xff09; 3、接口定义 Vcc、 Trig&#xff08;控制端&#xff09…

Learning Vision-and-Language Navigation from YouTube Videos

问题&#xff1a; 现有的VLN方法受小规模环境或不合理的路径指令训练的影响&#xff0c;限制了对不可见环境的泛化 解决方案&#xff1a; 使用Youtube上海量的房屋参观视频 1、根据youtube的视频创建一个大规模数据集&#xff0c;该数据集包含来自房屋参观视频的合理路径指…

软件测试|测试平台开发-Flask 入门:编写第一个简单 Web 应用

简介 Flask 是一个轻量级的 Python Web 框架&#xff0c;它使得创建 Web 应用变得简单快捷。相比于Django框架&#xff0c;它具有以下的优点&#xff1a; 轻&#xff1a;Flask 是一个轻量级的 Web 框架&#xff0c;使用 Python 语言编写易&#xff1a;较其他同类型框架更为灵…