《Python语言程序设计》第4章第8题3个个位数之间比大小。‘a小于b而b大于c’这是最有漏洞的一个对比,请问我如何判断a和c
升序来做这个题
比如123就变成321 需要比对3个数
这不是比对2个数。a和b比对 我们可以直接写
if a>b:
print(ab)
else
print(ba)
但是现在是3个数abc
如果进行if比对呢
if a > b >c:
print(a,b,c)
elif a < b >c:
print(bca)
…
简洁的代码变成了复杂的代码段。
我们改改。利用类和对象来试一下
其实我觉得类和对象也是建立在选择基础上的。
如果选择基础没有做好类和对象的方便就不能体现
如果按abc排列
abc acb bac bca cba cab 是6重组合
但这个是没有带大小组合的
a大于b大于c
比如a大于b但小于c呢???
cab对吧
那应该让计算机如何认别呢
if c>a>b:321a,b,c =2,1,3elif c>b>a:321a,b,c = 1,2,3
elif a>b>c:321a,b,c =3,2,1
elif a>c>b:321a,b,c = 3,1,2
elif c>a>b:321a,b,c =2,1,3
elif b>a>c:3 2 1a,b,c = 2,3,1
elif b>c>a:321a,b,c = 1,3,2
如果不改变abc的位置呢
a>b>c
3,2,1
a<b<c
1,2,3
a>b<c
??3,1,2 or 2,1,3
a<b>c
??1,3,2 or 2,3,1
??这是我发现的这些对比里最要命的
a 小于b。b大于c 请问a和c到底是谁?
也许用数学的办法解决??可我不会数学题。这可怎么办
a小于b那么b一定是3或2. 然后c小于b那么c应该是2
1,3,2哇塞这个我自认为的难题自己解决了,真的我真的把这个当成主题了都。但是没想到这么快解决。
看来我不习惯自己进步太快。但是如果不进步快,我就会倒退 。所以应该继续前进。
在不改变abc位置的方式下,我们获得了4种而不是变化abc位置的6种排列。
看看缺的是哪两种
2,1,3
2,3,1
原来不改变abc位置会得出这样两个结果
a>b<c
??3,1,2 or 2,1,3
a<b>c
??1,3,2 or 2,3,1
所以通过不改变a,b,c的位置我们的到了少于自由变化位置的2个对比项
看来我可以省略很多代码了
正常根据第4章所学写的代码
in_integer = 123
int_a = in_integer // 100
int_b = in_integer % 100 // 10
int_c = in_integer % 100 % 10
print('in_integer // 100 is ', int_a)
print('in_integer % 100 // 10 is ', int_b)
print('in_integer % 100 % 10 is ', int_c)
利用第7章知识写的代码
class int_integer:def __init__(self, num):self.num = numdef get_integer_a(self):return self.num // 100def get_integer_b(self):return self.num % 100 // 10def get_integer_c(self):return self.num % 100 % 10
问题
😩我发现看来还是应该是6个条件
a>b<c
??3,1,2 or 2,1,3
a<b>c
??1,3,2 or 2,3,1
3, 1, 2
其实c,a,b
2, 1, 3
b,a,c
但二者都有共同点头一位大于b,b小于后一位
看来没法省了,还得继续
用第4章代码写
if a > b > c:print('a > b > c', a, b, c)
elif a < b < c:print('a < b < c', c, b, a)
elif a > b < c:print('a > b < c', b, a, c)
elif a < b > c:print('a < b > c', b, c, a)elif c > b < a:print('a > b < c', a, c, b)
elif c < b > a:print('a < b > c', b, a, c)
结果
用第7章的概念写
class analyst:def __init__(self, a, b, c):self.a = aself.b = bself.c = cdef get_analysts(self):if self.a > self.b > self.c:print('a > b > c is result ', self.a, self.b, self.c)elif self.a < self.b < self.c:print('a < b < c is result ', self.c, self.b, self.a)elif self.a > self.b < self.c:print('a > b < c is result ', self.b, self.a, self.c)elif self.a < self.b > self.c:print('a < b > c is result ', self.b, self.c, self.a)elif self.c > self.b < self.a:print('a > b < c is result ', self.a, self.c, self.b)elif self.c < self.b > self.a:print('a < b > c is result ', self.b, self.a, self.c)
完成代码
class int_integer:def __init__(self, num):self.num = numdef get_integer_a(self):return self.num // 100def get_integer_b(self):return self.num % 100 // 10def get_integer_c(self):return self.num % 100 % 10class analyst:def __init__(self, a, b, c):self.a = aself.b = bself.c = cdef get_analysts(self):if self.a > self.b > self.c:print('a > b > c is result ', self.a, self.b, self.c)elif self.a < self.b < self.c:print('a < b < c is result ', self.c, self.b, self.a)elif self.a > self.b < self.c:print('a > b < c is result ', self.b, self.a, self.c)elif self.a < self.b > self.c:print('a < b > c is result ', self.b, self.c, self.a)elif self.c > self.b < self.a:print('a > b < c is result ', self.a, self.c, self.b)elif self.c < self.b > self.a:print('a < b > c is result ', self.b, self.a, self.c)int_num = int_integer(123)
num1 = int_num.get_integer_a()
num2 = int_num.get_integer_b()
num3 = int_num.get_integer_c()integer_com = analyst(num1,num2,num3)
integer_com.get_analysts()
相关文章:

《Python语言程序设计》第4章第8题3个个位数之间比大小。‘a小于b而b大于c’这是最有漏洞的一个对比,请问我如何判断a和c
升序来做这个题 比如123就变成321 需要比对3个数 这不是比对2个数。a和b比对 我们可以直接写 if a>b: print(ab) else print(ba) 但是现在是3个数abc 如果进行if比对呢 if a > b >c: print(a,b,c) elif a < b >c: print(bca) … 简洁的代码变成了复杂的代码段。…...

Selenium 测试框架 - Python
🚀Selenium Python 实战指南:从入门到进阶 Selenium 是 Web 自动化测试中最受欢迎的工具之一,支持多种浏览器和语言。本文将从环境搭建到多浏览器兼容、测试框架集成、元素定位方式、常用操作、浏览器配置等多个方面进行详细讲解,并分享常见的最佳实践建议。 📦一、环境…...

RNN GRU LSTM 模型理解
一、RNN 1. 在RNN中, 二、GRU 1. GRU是为了解决RNN 梯度消失引入的改良模型, 2. GRU 通过门控 Gamma_r Gamma_u 两个变量,实现了对于过往记忆的筛选:这种机制使得GRU能够灵活地决定何时“忘记”过去的信息以及何时“记住”新的…...
AutoCompose - 携程自动编排原理 -【编排关系DAG的构建】
AutoCompose - 携程自动编排原理 -【编排关系DAG的构建】 前言一. Spring / SpringBoot 的兼容✅ spring.factories 文件🧩 特点📄 示例 ✅ META-INF/spring/ 目录下的文件(Spring Boot 2.4 新特性)🧩 特点Ὄ…...

【MC】红石比较器
在《我的世界》(Minecraft)中,红石比较器(Redstone Comparator) 是一种高级红石元件,主要用于 检测、比较或处理信号强度,同时还能与容器、特定方块互动。 红石比较器有两种模式: 比…...
危化品经营单位安全生产管理人员考试主要内容
危化品经营单位安全生产人员考试主要测试从业人员对危险化学品安全管理的专业知识和法规掌握程度。考试内容涵盖以下重点: 法律法规(30%) 重点考查《安全生产法》《危险化学品安全管理条例》等核心法规,以及经营许可、重大危险源…...
get_the_category() 和 get_the_terms() 的区别
get_the_category() 和 get_the_terms() 是WordPress中用于获取文章分类的两个函数,但它们之间存在一些关键差异: get_the_category() 特定于分类:get_the_category() 函数专门用于获取文章的分类(category)。它返回一个包含所有分类对象的…...

红黑树简单模拟实现
定义成员变量旋转insert以234树的角度来待插入操作具体代码 完整代码 我们前面实现了 二叉搜索树和 AVL树。 其中AVL树是二叉搜索树的改进,但是有些人觉得二叉树搜索的插入调整太频繁了,或者说平衡条件过于苛刻。 于是人们放松了左右子树高度差的限制&…...

豪越科技:消防应急装备智能仓储管理新变革
在消防救援工作中,消防装备无疑是消防员们与火灾等灾害顽强对抗的关键“武器”。然而,传统的消防装备管理模式长期以来饱受诸多痛点的困扰,严重影响着消防工作的高效开展和救援效果。 在过去,装备丢失的情况时有发生。由于缺乏有效…...

如何设计Agent的记忆系统
最近看了一张画Agent记忆分类的图 我觉得分类分的还可以,但是太浅了,于是就着它的逻辑,仔细得写了一下在不同的记忆层,该如何设计和选型 先从流程,作用,实力和持续时间的这4个维度来解释一下这几种记忆&am…...

毕业论文格式(Word)
目录 Word目录怎么自动生成?快速生成试试这3个方法! - 知乎https://zhuanlan.zhihu.com/p/692056836目录生成需要先设置标题样式,这个不仅是目录生成需要,和后续的图表也有关系。 最好不要自己创建新的样式,而是在现有…...

学习STC51单片机14(芯片为STC89C52RC)
接下来我们进入学会了HC—SR04 还有舵机那么现在我们将他们融合在一起,用超声波来引导舵机的转动 我们这个最后的成果是做一个智能垃圾桶 成品是这样的,是不是可有意思了 成品视频 现在我们将舵机的代码和超声波测距模块的代码整合到一起,实…...

基于CodeBuddy实现本地网速的实时浏览小工具
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 在数字化浪潮席卷全球的今天,网络已成为人们生活和工作中不可或缺的基础设施。无论是在线办公、学习、娱乐,还是进行大数据传输和云计算&…...

stable diffusion论文解读
High-Resolution Image Synthesis with Latent Diffusion Models 论文背景 LDM是Stable Diffusion模型的奠基性论文 于2022年6月在CVPR上发表 传统生成模型具有局限性: 扩散模型(DM)通过逐步去噪生成图像,质量优于GAN&#x…...

计算机网络(3)——传输层
1.概述 1.1 传输层的服务和协议 (1)传输层为允许在不同主机(Host)上的进程提供了一种逻辑通信机制 (2)端系统(如手机、电脑)运行传输层协议 发送方:将来自应用层的消息进行封装并向下提交给 网络层接收方:将接收到的Segment进行组装并向上提交给应用层 …...

LangChain构建RAG的对话应用
目录 Langchain是什么? LangSmith是什么? 编辑 使用Python构建并使用AI大模型 数据解析器 提示模版 部署 记忆功能 Chat History -- 记忆 代码执行流程: 流式输出 构建向量数据库和检索器 检索器 代码执行流程 LLM使用检索器…...

目标检测DN-DETR(2022)详细解读
文章目录 gt labels 和gt boxes加噪query的构造attention maskIS(InStability)指标 在DAB-Detr的基础上,进一步分析了Detr收敛速度慢的原因:二分图匹配的不稳定性(也就是说它的目标在频繁地切换,特别是在训…...

嵌入式培训之系统编程(四)进程
一、进程的基本概念 (一)定义 进程是一个程序执行的过程(也可以说是正在运行的程序),会去分配内存资 源,cpu的调度,它是并发的 (二)PCB块 1、PCB是一个结构体&#x…...

天文数据处理:基于CUDA的射电望远镜图像实时去噪算法(开源FAST望远镜数据处理代码解析)
一、射电天文数据处理的挑战与CUDA加速的必要性 作为全球最大的单口径射电望远镜,中国天眼(FAST)每秒产生38GB原始观测数据,经预处理后生成数千万张图像。这些数据中蕴含的脉冲星、中性氢等天体信号常被高斯白噪声、射频干扰&…...

VS编码访问Mysql数据库
安装 MySQL Connector/C 的开发包 libmysqlcppconn-dev是 MySQL Connector/C 的开发包,它的主要用途是让 C 开发者能够方便地在应用程序中与 MySQL 数据库进行交互。它提供了以下功能: 数据库连接:通过标准的 C 接口连接到 MySQL 数据库。S…...

一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.merge():数据库风格合并
锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili pd.merge():数据库风格合并 **核心功能**:基于列值(类似 SQL JOIN)合…...
leetcode 862. 和至少为 K 的最短子数组
这段代码使用了前缀和单调队列的组合策略来高效解决"和至少为K的最短子数组"问题。我将从问题定义、核心思路到代码实现逐步拆解: 问题定义 给定数组 nums 和整数 k,找到和 ≥k 的最短非空子数组,返回其长度。 示例:n…...

CodeBuddy 实现图片转素描手绘工具
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 最近在社交媒体上,各种素描风格的图片火得一塌糊涂,身边不少朋友都在分享自己的 “素描照”,看着那些黑白线条勾勒出的独特韵味&a…...

3.8.2 利用RDD计算总分与平均分
在本次实战中,我们利用Spark的RDD完成了成绩文件的总分与平均分计算任务。首先,准备了包含学生成绩的文件并上传至HDFS。接着,通过交互式方式逐步实现了成绩的读取、解析、总分计算与平均分计算,并最终输出结果。此外,…...

29-FreeRTOS事件标志组
一、概述 事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同步。 即一个任务可以等待多个事件的发生࿱…...
天地图实景三维数据分享(江苏)
1、天地图介绍 “天地图”(MAPWORLD)是国家地理信息公共服务平台 ,2011年正式上线 ,是自然资源部门向社会提供各类在线地理信息公共服务、推动地理信息数据开放共享的政府网站 ;是中国区域内基础地理信息数据资源最全…...
Jenkins的Pipline中有哪些区块,以及其它知识点整理
目录 ■模板 ■Jenkins的Pipline中有哪些区块 1. pipeline(顶层区块) 2. agent(执行节点) 3. stages(阶段集合) 4. stage(单个阶段) 5. steps(具体步骤࿰…...

「EMD/EEMD/VMD 信号分解方法 ——ECG信号处理-第十四课」2025年5月23日
一、引言 上一节,我们介绍了希尔伯特黄变换(HHT)及其经验模态分解(EMD)的相关内容,这一节,我们继续拓展EMD分解技术,补充介绍集合经验模态分解(Ensemble Empirical Mode …...

二叉树层序遍历6
INT_MIN的用法: INT_MIN是C/C 中的一个宏常量 ,在 <limits.h> (C 中也可使用 <climits> )头文件中定义,代表 int 类型能表示的最小整数值 。其用法主要体现在以下方面: 1.初始化变量 …...

【论文精读】2023 AAAI--FastRealVSR现实世界视频超分辨率(RealWorld VSR)
文章目录 一、摘要二、Method2.1 现象(问题)--对应文中隐状态的分析(Analysis of Hidden State)2.2 怎么解决 --对应文中Framework2.2.1 整体流程:2.2.2 HSA模块怎么工作?2.2.2.1 隐藏状态池2.2.2.2 选择性…...