首页 > 编程语言 >8/21 python基础学习4

8/21 python基础学习4

时间:2022-08-22 01:44:06浏览次数:51  
标签:__ 21 python self 学习 json file print name

第九章 类

类的创建:

class Dog:

    def __init__(self, name, age):  # 初始化函数
        self.name = name
        self.age = age

    def sit(self):
        print(f"{self.name} is now sitting")


class my_dog(Dog):

    def __init__(self, name, age, color):
        super().__init__(name, age)
        self.color = color

    def print(self):
        print(f" name = {self.name}\n age = {self.age}\n color = {self.color}")


Adog = Dog("feifei", 4)
md = my_dog("feifei", 4, "white")
md.print()

继承:()内指定要继承的父类。
super() 让子类可以调用父类的方法。
python的属性和函数默认是public
类的私有属性便是在前面加上“__”标识符,而公共属性则不必。
类的文件也可以像函数模块一样import
注意:可以多用别名

第十章 文件和异常

书上有些谬误,比如读文件得到的字符串已经不包含额外的换行。
以及读到的文件对象,不能直接逐行遍历,要先分割read()得到的字符串。
读取文件:

with open('num.txt') as file_obj:
    contents = file_obj.read()
print(contents)

由于反斜杠\是转义字符,下面两种路径效果一样

with open('C:\\Users\\admin\\Desktop\\name.txt') as file_obj:
    contents = file_obj.read()
with open('C:/Users/admin/Desktop/name.txt') as file_obj:
    con = file_obj.read()
lines = con.split("/n")
for line in lines: #逐行输出
    print(line)

注意使用with关键字时,open()返回的文件对象只能在with代码块中使用。
字符串可以直接使用if(str in strall)来判断字符串是否存在strall中

python写入文件,a+为附加模式。

with open('C:/Users/admin/Desktop/name.txt', 'a+') as file_obj:
    con = file_obj.read()
    file_obj.write("\nlisi")

异常

使用try-except代码块,如果发生了问题,可以执行except中的代码,而不是直接报错。

try:
    print(5/0)
except ZeroDivisionError:
    print("error!\nyou can't divide by zero")
else:
    print("exit")

else里可以执行,运行成功后执行的代码。
可以使用pass来让代码块中什么都不做。

使用json来存储数据以便多个程序共享:
写程序

import json

nums = [2, 3, 3, 4, 5, 6, 7, 8, 9]

file_name = 'num.json'
with open(file_name, 'w') as f:
    json.dump(nums, f)

读程序:

import json

file_name = 'num.json'
with open(file_name) as f:
    nums = json.load(f)

print(nums)

使用方法类似共享内存,需要一个写死的字符串来共享数据。
dumps()函数将JSON对象转为文本字符串。
写代码降低耦合性,把功能尽量分开划分,方便代码维护。

第十一章 测试代码

python在模块 unittest 提供了代码测试工具。
单元测试

import json
import unittest
from test import input_num


class json_test(unittest.TestCase):

    def test(self):
        input_num([3, 4, 5, 6])
        file_name = 'num.json'
        with open(file_name) as f:
            test_num = json.load(f)
        self.assertEqual(test_num, [3, 4, 5, 6])#断言方法

if __name__ == '__main__':
    unittest.main()

unittest.main()运行测试类开头为“test”的函数。
可以使用定义set_up()方法,来建立测试用例。

标签:__,21,python,self,学习,json,file,print,name
From: https://www.cnblogs.com/hy227/p/16611574.html

相关文章

  • Markdown基础学习
    二、标题这是三级标题这是四级标题这是六级标题(主人,不能再多了)通过#+空格来完成标题的设置,#的数量代表几级标题,最多可以设置六级标题二、字体helloword!两边加**表......
  • 2022.8.21 摆烂记录
    Preface回归Content[luoguP4310]绝世好题给定序列\(a_{1\simn}\),求子序列\(b\)的最长长度\(k\),使得\(\foralli\in[2,k],b_i\mathsf{\&}b_{i-1}\gt0\)。\(......
  • Python数据库编程
    1.操作SQLite3数据库  Python3.x版本开始,在标准库中已经内置了SQLlite3模块,它可以支持SQLite3数据库的访问和相关的数据库操作。在需要操作SQLite3数据库数据时,只须在......
  • Oracle 序列学习与使用总结
    Oracle序列学习与使用总结by:授客QQ:1033553122简述序列是oracle提供的用于生成一系列数字的数据库对象,序列会自动生成顺序递增的序列号,可用于提供唯一的自动递增主键。......
  • Markdown学习
    Markdown学习二、标题三级标题四级标题六级标题通过#+空格来完成标题的设置,#的数量代表几级标题,最多可以设置六级标题二、字体helloword!两边加**表示加粗hellow......
  • python: 绘制数学函数
    1importmatplotlib.pyplotasplt2importnumpyasnp34#100linearlyspacednumbers5x=np.linspace(-5,5,100)67#thefunction,whichisy=......
  • 【实验记录】8月21日-遇到普通用户内存限制的问题,
    H3K27acmkdirnamed_H3K27acmkdirnamed_H3K27ac_s1mkdirnamed_H3K27ac_s2mkdirnamed_H3K27ac_s3mkdirnamed_H3K27ac_s4(base)[xxzhang@cu08human_histone_ma......
  • opencv学习--基础
    1.opencv包安装 这里直接安装opencv-python包(非官方):pip3installopencv-python以及相应的扩展包:pip3installopencv-contrib-python官方文档:https://......
  • pbds 学习记录
    #pbds学习记录pbds库提供了一些常用的数据结构,常数上通常比对应的常用stl更快,所以值得整理一下。##堆为了使用pbds的堆,我们要使用如下头文件```cpp#inclu......
  • 2022.8.21 CAS与原子引用(解决CAS的ABA问题)
    19、深入理解CAS什么是CAS packagecom.xing.cas; ​ importjava.util.concurrent.atomic.AtomicInteger; //原子类的底层用的cas publicclassCASDemo{  ......