知识:
#继承,创建有继承的类 #父类、子类 #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
标签:__,文件,Python,self,day3,学习,print,open,def From: https://blog.csdn.net/2401_82736456/article/details/136940379高阶函数,匿名函数lambda