Python学习day3

知识:

#继承,创建有继承的类
#父类、子类
#class 子类(父类):
#调用时找父类的构造函数,如果子类自己有某函数则调用子类的,否则调用父类的
#在子类有构造函数的时候调用父类,可以用super().__init__的方法调用父类函数

代码:

#举例人力系统
class staff:def __init__(self,name,id):self.name = nameself.id = iddef print_info(self):print(f"员工名字:{self.name},工号{self.id}")class FullStaff(staff):def __init__(self,name,id,monthsalary):super().__init__(name,id)self.monthsalary = monthsalarydef caculatemonthpay(self):return self.monthsalaryclass parTimeEmployee(staff):def __init__(self,name,id,daysalary,workdays):super().__init__(name,id)self.daysalary = daysalaryself.workdays = workdaysdef caculatedaypay(self):return self.daysalary * self.workdayszhangsan = FullStaff("张三","1001",6000)
lisi = parTimeEmployee("李四","1002",300,15)
zhangsan.print_info()
lisi.print_info()
print(zhangsan.caculatemonthpay())
print(lisi.caculatedaypay())

结果:

知识:#用python读取文件

#用python读取文件

#open函数打开目标文件,返回文件对象
#f = open("路径","模式",encoding = "编码方式") 模式默认为r,编码方式一般为”utf-8“
#读方式:f.read() 读取文件中所有内容,并以字符串形式返回
#重复读文件,第二次会返回空,因为程序会记录上一次读到的位置(结尾)
#可以控制读取的字节数 f.read(10)
#f.readline() 根据换行符每次只读一行的内容,并且会记录读到哪个位置
#结合while读取文件所有内容
# line = f.readline()
# while line != "":
#     print(line)
#     line = f.readline
#readlines方法 会读取文件全部内容,并把每行作为列元素返回的是一个列表,包括换行符
#会和for结合使用
# lines = f.readlines()
# for line in lines:
#     print(line)
#每次读完文件要关闭
#显示关闭f.close()
#或者
# with open("路径") as f:
#     print(f.read())#运行完缩进里的主体就自动关闭文件

路径:

代码:

# f = open("./study.txt","r",encoding = "utf-8")
# content = f.read()
# print(content)
# f.close()
#或者
# with open("./study.txt","r",encoding = "utf-8") as f:
#     content = f.read()
#     print(content)
#或者
with open("./study.txt","r",encoding = "utf-8") as f:content = f.readlines()print(content)print()for i in content:print(i)#输出时它本身就带换行符

结果:

知识:用python写文件

#w模式下,下一次打开文件会先清除文件本身存在的内容,三思再用
#不会默认帮你换行,需要手动加\n
#追加模式"a"
#读写模式"r+",会以追加的方式在文件后面加内容

#没有文件会自动创建文件

代码:

with open("./study.txt","w",encoding = "utf-8") as f:f.write("Hello!\n")f.write("How are you?")f = open("./study.txt","w",encoding="utf-8")
f.write("你好")#此时文件内原本的英文被清空,只有”你好“

练习:

1.在新文件"poem.txt"文件写入诗句“我欲乘风归去,

                                                                又恐琼楼玉宇。

                                                                高处不胜寒。”

2.在上面文件后面追加诗句:“起舞弄清影,

                                               何似在人间。”

代码:

with open("./study.txt","w",encoding = "utf-8") as f:f.write("我欲乘风归去\n")f.write("又恐琼楼玉宇\n")f.write("高处不胜寒\n")
with open("./study.txt","a",encoding = "utf-8") as f:f.write("起舞弄清影\n")f.write("何似在人间\n")

结果:

知识:捕捉异常、测试

#捕捉异常,从上往下执行,出现错误则之后的语句都不会执行
try:#可能会报错的代码
except ValueError:#错误发生后的相应操作
except:#会捕捉所有错误类型
else:#返回正常执行需要的语句
finally:#不管正常还是异常都会执行finally

python -m unittest

. 通过测试

F 未通过测试

代码1:

class ShoppingList:#对商品清单初始化def __init__(self,shopping_list):self.shopping_list = shopping_list#返回商品总数def get_item_count(self):return len(self.shopping_list)#返回商品总价钱def get_item_price(self):total_price = 0for price in self.shopping_list.values():total_price += pricereturn total_price

test代码2:

#以test_开头才能被unittest当作测试用例
import unittest
from study import ShoppingList#从文件里把类引入class TestShoppingList(unittest.TestCase):def setUp(self):self.shoppinglist = ShoppingList({"纸巾":10,"牙刷":5,"沐浴露":23})def test_get_item_count(self):self.assertEqual(self.shoppinglist.get_item_count(),3)def test_get_total_price(self):self.assertEqual(self.shoppinglist.get_item_price(),38)

结果:

知识:高阶函数、匿名函数lambda

高阶函数,匿名函数lambda

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot的“漫画之家”系统

目录 背景 技术简介 系统简介 界面浏览 背景 随着科技的不断进步,计算机已经变成了人们日常生活和工作不可或缺的工具。在这样的环境下,互联网技术被广泛运用于各个领域,以提升工作和生活的效率,推动了网络信息技术的迅猛发展…

基于Springboot的西安旅游系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的西安旅游系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

力扣热门算法题 52. N 皇后 II,53. 最大子数组和,54. 螺旋矩阵

52. N 皇后 II,53. 最大子数组和,54. 螺旋矩阵,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.20 可通过leetcode所有测试用例。 目录 52. N 皇后 II 解题思路 完整代码 Python Java 53. 最大子数组…

多线程基础 -概念、创建、等待、分离、终止

文章目录 一、 线程概念1. 什么是线程2. 线程的优点3.线程的缺点4. 线程异常5. 线程用途 二、 Linux进程VS线程1. 进程和线程2. 进程和线程的地址空间3. 进程和线程的关系 三、Linux线程控制1. POSIX线程库2. 线程创建3. 线程ID及进程地址空间布局4. 线程终止5. 线程等待6. 线程…

Linux初识环境变量

🌎环境变量【上】 文章目录: 环境变量 什么是环境变量 关于命令行参数 环境变量       简单了解       为什么需要环境变量       系统中其他环境变量 总结 前言: 环境变量是一种非常重要的概念,它们对于系统的…

长安链正式发布三周年,技术更迭支撑产业变革

导语: 2024年1月27日长安链正式发布三周年,开源社区借开年之际与大家一同回顾长安链三年来的技术发展历程,每一个里程碑的建设都得益于与长安链同行的合作伙伴与开发者,希望在2024年可以共同携手继往开来,为数字经济发…

Mysql面试题以及答案

1 基础 1.1、MySQL有哪些数据库类型? 数值类型 有包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,分别表示 1 字节、2 字节、3 字节、4 字节、8 字节的整数类型。 1)任何整数类型都可以加上 UNSIGNED 属性,表示无符号整数。 …

Matlab快捷键与函数

注释:注释对于代码的重要性我们就不做过多的解释了。不做注释的代码不是好代码。选中要注释的语句,按快捷键CtrlR,或者在命令行窗口上面的注释地方可以进行注释。当然也可以直接在语句前面“%”就可以(注意:一定要用英文符号&…

第十二届蓝桥杯省赛CC++ 研究生组

十二届省赛题 第十二届蓝桥杯省赛C&C 研究生组-卡片 第十二届蓝桥杯省赛C&C 研究生组-直线 第十二届蓝桥杯省赛C&C 研究生组-货物摆放 第十二届蓝桥杯省赛C&C 研究生组-路径 第十二届蓝桥杯省赛C&C 研究生组-时间显示 第十二届蓝桥杯省赛C&C 研究生组…

石油炼化5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

石油炼化5G智能制造工厂数字孪生可视化平台,推进行业数字化转型。在石油炼化行业,5G智能制造工厂数字孪生可视化平台的出现,为行业的数字化转型注入了新的活力。石油炼化行业作为传统工业的重要领域,面临着资源紧张、环境压力、安…

Matlab 双目相机标定(内置函数)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 相机标定的目的就是要找到从世界坐标转换为图像坐标所用到的投影P矩阵各个系数(即相机的内参与外参)。具体过程如下所述: 1、首先我们需要获取一个已知图形的图像(这里我们使用MATLAB所提供的数据)。 2、找到同…

_nodemon自动重启服务器

文章目录 1.安装模块 nodemon1.1安装方式2.jason文件里面可以存储自定义指令 由于每次修改代码都要重启服务器,所以我们希望有一种方式自动监视代码修改,自动启动服务器nodemon模块解决了这个问题 1.安装模块 nodemon 1.1安装方式 全局安装 npm i node…

计算地球圆盘负荷产生的位移

1.研究背景 计算受表面载荷影响的弹性体变形问题有着悠久的历史,涉及到许多著名的数学家和物理学家(Boussinesq 1885;Lamb 1901;Love 1911,1929;Shida 1912;Terazawa 1916;Munk &…

TCP | TCP协议格式 | 三次握手

1.TCP协议 为什么需要 TCP 协议 ?TCP 工作在哪一层? IP网络层是不可靠的,TCP工作在传输层,保证数据传输的可靠性。 TCP全称为 “传输控制协议(Transmission Control Protocol”)。 TCP 是面向连接的、可靠…

京东云开发者:DDD 学习与感悟 —— 向屎山冲锋

原文地址:https://mp.weixin.qq.com/s/Hvq1ttBopbxypatVcKcLiA 软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计…

opengl 学习(六)-----坐标系统与摄像机

坐标系统与摄像机 分类引言坐标系统摄像机教程在CMake中使用全局定义预编译宏,来控制是否开启错误检查补充 分类 opengl c 引言 OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说&#xff…

OCP NVME SSD规范解读-14.Firmware固件升级要求

4.11节 Firmware Update Requirements 描述了数据中心NVMe SSD固件更新的具体要求,确保固件升级过程既安全又可靠,同时充分考虑了设备在升级过程中的可用性和功能性。 FWUP-1: 设备必须记录每一次固件激活过程。这意味着固件升级过程中,设备会…

【Dynamics 365 FO】在Dynamics 365中建立一个SSRS报表

建立一个SSRS报表主要有以下8个步骤: 目录 1、新建合约类 合约类(Contract Class)的作用是获取查询数据源所需要的数据,在我们点开报表的时候,系统会弹出一个对话框让我们来选择字段来筛选要查询数据,合…

基于Java的厦门旅游电子商务预订系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 景点类型模块2.2 景点档案模块2.3 酒店管理模块2.4 美食管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学生表3.2.2 学生表3.2.3 学生表3.2.4 学生表 四、系统展示五、核心代码5.1 新增景点类型5.2 查询推荐的…

CANoe自带的TCP/IP协议中TCP发送时的一个特殊处理(我一定是第一个发现的)

我们知道,CANoe软件中配置以太网通道后,添加的仿真节点可以作为一个主机或者一个应用来实现以太网通信。但不管是作为主机还是应用,仿真节点都需要配置TCP/IP协议栈。 有了TCP/IP协议栈,设置了网卡信息后(IP地址、MAC地址等),仿真节点就可以通过编写CAPL代码的方式发送和…