· 面向对象编程之类运算操作小练习

描述

这是一个关于"面向对象编程之类运算操作"的小练习,覆盖面向对象编程中类的运算等语法的基本操作,包含两部分内容:跟随练习 和 小测验。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

在"跟随练习"环节,请使用IDLE编辑器的文件模式,逐块输入以下语句,观察并比较输出结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

在"小测验"环节,请在本题目对应的"提交代码"页面按要求输入代码,"保存并提交评判"后查看结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

跟随练习

(一)类的比较运算操作,按顺序逐块输入以下语句(19行):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

class FirstClass:def __init__(self, seq, pos):self.seq = seqself.pos = posdef __lt__(self, other):return self.seq < other.seqdef __le__(self, other):return self.seq <= other.seqdef __eq__(self, other):return self.seq == other.seqdef __ne__(self, other):return self.seq != other.seqdef __gt__(self, other):return self.seq > other.seqdef __ge__(self, other):return self.seq >= other.seqd1 = FirstClass(10, "window")
d2 = FirstClass(8, "asile")
print(d1>d2, d1>=d2, d1==d2, d1!=d2, d1<d2, d1<=d2)

运行后结果如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

>>>
True True False True False False

(二)类的数值运算操作,按顺序逐块输入以下语句(21行):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

class FirstClass:def __init__(self, seq, pos):self.seq = seqself.pos = posdef __add__(self, other):return self.seq + other.seqdef __sub__(self, other):return abs(self.seq - other.seq)def __mul__(self, other):return self.seq * other.seqdef __truediv__(self, other):return "非法操作"def __floordiv__(self, other):return self.seq // other.seqdef __mod__(self, other):return self.seq % other.seqdef __divmod__(self, other):return divmod(self.seq, other.seq)d1 = FirstClass(10, "window")
d2 = FirstClass(8, "asile")
print(d1+d2, d1-d2, d1*d2, d1/d2, d1//d2, d1%d2, divmod(d1,d2))

运行后结果如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

>>>
18 2 80 非法操作 1 2 (1, 2)

(三)类的一元算术运算操作,按顺序逐块输入以下语句(15行):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

class FirstClass:N = 20def __init__(self, seq, pos):self.seq = seqself.pos = posdef __neg__(self):return FirstClass.N - self.seqdef __pos__(self):return self.seqdef __abs__(self):return abs(self.seq - FirstClass.N//2)def __invert__(self):return self.seq + self.__abs__()d1 = FirstClass(8, "window")
print(d1, -d1, +d1, abs(d1), ~d1)

运行后结果如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

>>>
<__main__.FirstClass object at 0x05E68DD0> 12 8 2 10

(四)类的二元算术运算操作,按顺序逐块输入以下语句(26行):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

class FirstClass:def __init__(self, seq, pos):self.seq = seqself.pos = posdef __pow__(self, other):return self.seq ** otherdef __shift(self):return "asile" if self.pos == "window" else "window"def __lshift__(self, other):for _ in range(other):self.pos = self.__shift()return self.posdef __rshift__(self, other):for _ in range(other):self.pos = self.__shift()return self.posdef __and__(self, other):return self.seq & other.seqdef __xor__(self, other):return self.seq ^ other.seqdef __or__(self, other):return self.seq | other.seqd1 = FirstClass(10, "window")
d2 = FirstClass(8, "asile")
print(pow(d1, 2), d1 << 3, d1 >> 5)
print(d1 & d2, d1 ^ d2, d1 | d2)

运行后结果如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

>>>
100 asile window
8 2 10

(五)类的成员运算操作,按顺序逐块输入以下语句(26行):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

class FirstClass:def __init__(self, seq, pos):self.seq = seqself.pos = posdef __contains__(self, item):return True if self.seq == item else Falsedef __getitem__(self, key):if key == 0:return self.seqelif key == 1:return self.poselse:return "错误键值"def __setitem__(self, key, v):if key == 0:self.seq = velif key == 1:self.pos = velse:passd1 = FirstClass(10, "window")
print(10 in d1, 5 in d1)
print(d1[0], d1[1])
d1[0] = 8
d1[1] = "asile"
print(d1[0], d1[1])

运行后结果如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

>>>
True False
10 window
8 asile

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

小测验

请将如下代码粘贴至"提交代码"页面,"保存并提交评判"后查看结果。注意,此时代码不是交互模式,而是文件模式。 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

class FirstClass:def __init__(self, seq, pos):self.seq = seqself.pos = posdef __str__(self):return "座位号:" + str(self.seq) + "; 类型:" + self.posd1 = FirstClass(10, "window")
print(str(d1))

</>提交代码

class FirstClass:def __init__(self, seq, pos):self.seq = seqself.pos = posdef __str__(self):return "座位号:" + str(self.seq) + "; 类型:" + self.posd1 = FirstClass(10, "window")
print(str(d1))

小学期Python面向对象实践-2 # Python # Cilay相关推荐

  1. 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)

    文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...

  2. python定义一个dog类 类属性有名字毛色体重_面向对象实践,练习,Python

    1.定义一个汽车类(Car),属性有颜色,品牌,车牌号,并实例化两个对象 2.定义一个球员类(Player),属性有身高.体重.姓名,实例化两个球员,分别是姚明和科比 3.定义一个僵尸类(Zombie ...

  3. python面向对象实践二(银行账户资金交易管理)

    用类和对象实现一个银行账户的资金交易管理, 包括存款.取款和打印交易详情, 交易详情中包含每次交易的时间.存款或者取款的金额.每次交易后的余额. 如: 下面按照要求定义一个账户 Account 类.账 ...

  4. python对象编程例子-python面向对象编程:python类和实例讲解

    东尧爱分享 这是东尧每天一篇文章的第51天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 1 什么是对象 在python里面,一切皆为对象.也就是说python里的所有数据都 ...

  5. 『无为则无心』Python面向对象 — 47、Python中的self详解

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. 如何短时间提高python面向对象_初识Python面向对象阶段,你们都是怎么过来的?

    泻药. 其实挺简单的,我换种说法你应该就能明白. 假设现在我要去在这个问题下挖个坑,那么为了解决这个问题,我就要考虑 : 题主问的是什么,我该怎么回答,我该在哪回答,回答后怎么提交-- 也就是说,我在 ...

  7. 2021-2022年小学期 程序设计开发实践 随堂笔记

    作者:筱柒_Littleseven 2022/08/08 Class1 对于数据结构的理解 首先对于程序编写和项目开发来说,主要的部分是对于数据的储存.处理分析的过程,而并非仅仅通过学习过的语法知识完 ...

  8. 嵩天老师Python面向对象-23,Python计算自然常数e

  9. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

最新文章

  1. 如何零门槛搭建实时音视频通信平台
  2. 如何在C ++中使用数组?
  3. dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...
  4. 在 wxWidgets 中播放声音的示例
  5. How to include html native content to UI5 page - 直接在xml view里添加html namespace
  6. 高级PHP工程师所应该具备的专业素养
  7. 系统mysql数据库服务器,系统mysql数据库服务器
  8. docker jenkins 公钥_代码自动发布docker(20.10.1)+k8s(1.20.1)
  9. php协程和goroutine,浅谈协程和Go语言的Goroutine
  10. Java连接Elasticsearch6.xxx CRUD篇二
  11. Google Maps API V3: 通过邮编获取经纬度 Get Location (Latitude and Longitude) from Zip Cod
  12. 暂停 CSS @keyframes 动画
  13. SQOOP——MySQL 和 HDFS 的桥梁
  14. 将图像分成m×n的小子块
  15. 12864液晶 介绍
  16. ios Reading from private effective user settings
  17. 后端知识点:互联网中B端客户和C端客户的区别
  18. 用GZIPOutputStream流压缩出现H4sIAAAAAAAAAA==
  19. word文档如何排版图片
  20. CodeForces - 581B - Luxurious Houses 逆序处理水

热门文章

  1. 动态链接库(.dll) 动态导入库(.lib) 静态链接库(.lib)
  2. 导之以行——儿子喝酸奶篇
  3. 电信网编号计划征求意见 物联网产业有望迎来风口
  4. Win7如何利用系统放大镜工具更改用户密码
  5. 双光子荧光成像_为什么双光子成像如此重要?
  6. Ubuntu 18.04 LTS 桌面版 WPS 安装字体
  7. oracle怎么从右边截取,Oracle 字符串截取 从后向前截取方法
  8. C# 电子印章制作管理系统
  9. linux服务器查看显卡信息
  10. IDEA绝对好用的十大插件,不接受反驳