当前位置: 首页 > article >正文

《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 213
a<b>c
??132 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 213
a<b>c
??132 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 213
a<b>c
??132 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()

在这里插入图片描述

http://www.lryc.cn/news/2385533.html

相关文章:

  • Selenium 测试框架 - Python
  • RNN GRU LSTM 模型理解
  • AutoCompose - 携程自动编排原理 -【编排关系DAG的构建】
  • 【MC】红石比较器
  • 危化品经营单位安全生产管理人员考试主要内容
  • get_the_category() 和 get_the_terms() 的区别
  • 红黑树简单模拟实现
  • 豪越科技:消防应急装备智能仓储管理新变革
  • 如何设计Agent的记忆系统
  • 毕业论文格式(Word)
  • 学习STC51单片机14(芯片为STC89C52RC)
  • 基于CodeBuddy实现本地网速的实时浏览小工具
  • stable diffusion论文解读
  • 计算机网络(3)——传输层
  • LangChain构建RAG的对话应用
  • 目标检测DN-DETR(2022)详细解读
  • 嵌入式培训之系统编程(四)进程
  • 天文数据处理:基于CUDA的射电望远镜图像实时去噪算法(开源FAST望远镜数据处理代码解析)
  • VS编码访问Mysql数据库
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.merge():数据库风格合并
  • leetcode 862. 和至少为 K 的最短子数组
  • CodeBuddy 实现图片转素描手绘工具
  • 3.8.2 利用RDD计算总分与平均分
  • 29-FreeRTOS事件标志组
  • 天地图实景三维数据分享(江苏)
  • Jenkins的Pipline中有哪些区块,以及其它知识点整理
  • 「EMD/EEMD/VMD 信号分解方法 ——ECG信号处理-第十四课」2025年5月23日
  • 二叉树层序遍历6
  • 【论文精读】2023 AAAI--FastRealVSR现实世界视频超分辨率(RealWorld VSR)
  • IPython 常用魔法命令