首页 > 编程语言 >Python学习day3

Python学习day3

时间:2024-03-27 19:31:46浏览次数:29  
标签:__ 文件 Python self day3 学习 print open def

知识:

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

代码:

#举例人力系统
class staff:
    def __init__(self,name,id):
        self.name = name
        self.id = id

    def print_info(self):
        print(f"员工名字:{self.name},工号{self.id}")

class FullStaff(staff):
    def __init__(self,name,id,monthsalary):
        super().__init__(name,id)
        self.monthsalary = monthsalary

    def caculatemonthpay(self):
        return self.monthsalary

class parTimeEmployee(staff):
    def __init__(self,name,id,daysalary,workdays):
        super().__init__(name,id)
        self.daysalary = daysalary
        self.workdays = workdays

    def caculatedaypay(self):
        return self.daysalary * self.workdays

zhangsan = 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 = 0
        for price in self.shopping_list.values():
            total_price += price
        return 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

标签:__,文件,Python,self,day3,学习,print,open,def
From: https://blog.csdn.net/2401_82736456/article/details/136940379

相关文章

  • API学习
    ArrayList集合:一种容器,用来存储数据且集合的大小可变ArrayList:是集合中最常见的一种,ArrayList是泛型类,可以约束存储的数据类型ArrayList<Food>listFood=newArrayList<Food>();listFood集合内存储的是堆内存中对象的地址1.构造器:publicArrayList()创建一个空的集合对......
  • 基于深度学习的缺陷检测系统如何进行性能评估呢
    基于深度学习的缺陷检测系统进行性能评估时,通常会考虑多个指标以确保系统的准确性和可靠性。以下是一些关键的评估方法和指标:准确度(Accuracy):这是最基本的性能指标,用于衡量系统正确识别缺陷和非缺陷样本的能力。准确度越高,说明系统的性能越好。精确率(Precision):精确率关注的是系......
  • Python篇之网络编程,实现简单的服务端和客户端的内容传输
    本小节内容:实现简单的信息交流文章目录一、Socket介绍二、客户端与服务端三、在python中实现网络通信1.服务端2.客户端3.连接测试一、Socket介绍socket(简称套接字)模块是其内置的标准库之一,它实现了BSDsocketsAPI,允许开发者在Python程序中进行网络通......
  • 【图论】3.26学习记录 最短路/最长路 次短路
    最短路:SPFA:特点:代码短好写,负权边必备,可以判环,容易被卡成O(nm);code:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintMAXN=5e5+10;constintinf=2147483647;intdist[MAXN];intvis[MAXN];vector<pair<int,int>>e[MAXN];si......
  • C语言学习之第一个C语言程序【建议收藏】
    环境搭建好了C语言学习之环境搭建【建议收藏】-CSDN博客,接下来让我们一起来用VC编写第一个C语言程序吧!保姆级教程,非常建议小白学习使用,建议收藏!第一个C语言程序 双击打开VC,然后点击新建项目:按照图上的步骤,创建新项目→点击确定引导点击下一步:应用程序设置:项目创建完成:外......
  • 【Python系列】Python 中 YAML 文件与字典合并的实用技巧
    ......
  • 【Python】Python基本数据类型(超详细)
    前言在上一篇文章我们简单介绍了一下Python,本章我们就开始正式学习Python,在此之前,考虑到Python环境有的小伙伴可能没有,所有我开了一个QQ群,里面有代码编辑器(PyCharm)的安装与破解使用,如果有大佬需要的话可以加群自行安装,这个群创建的目的也是方便各位讨论技术,QQ群号:455341......
  • 如何构建一台机器学习服务器
    如何构建一台机器学习服务器Version:V1.0Author:NeoNexusDate:2024.03.26服务器设计要求:高性能、满足同时多人开发的需求、架构清晰、后期方便维护。因此写下此文档。基于最先进的架构、最先进硬件。监修中敬告本文处于Preview阶段,不对文章内容负任何责任,如有意见探讨欢迎......
  • Python中的datetime模块:轻松拿捏时间操作
    前言在Python中,处理日期和时间是非常常见的任务,无论是在开发Web应用程序、数据分析还是其他领域。datetime模块为我们提供了丰富的功能,可以轻松处理日期和时间,从简单的日期算术运算到复杂的时区转换,应有尽有。本文将深入探讨datetime模块的功能和用法,帮助大家轻松拿捏时间操作。......
  • 【文化课学习笔记】【数学】导数(下)
    【数学】导数(下)导数的分类讨论基本原理导数的正负决定函数的单调性,所以可以根据导数的正负不同分类。零点的个数会决定导数的正负分布区间的个数。一般为了知道导数的正负区间,可以通过画图象的方法(一般需要画出单调性和零点)来求得。所以分类讨论的标准如下:讨论有无零点,......