美文网首页
Python100天学习笔记

Python100天学习笔记

作者: 赵小闹闹 | 来源:发表于2019-05-21 22:09 被阅读0次

1.@property装饰器
建议将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便。

class Person(object):

    def __init__(self, name, age):
        self._name = name
        self._age = age

    # 访问器 - getter方法
    @property
    def name(self):
        return self._name

    # 访问器 - getter方法
    @property
    def age(self):
        return self._age

    # 修改器 - setter方法
    @age.setter
    def age(self, age):
        self._age = age

2.slots魔法
如果我们需要限定自定义类型的对象只能绑定某些属性,可以通过在类中定义slots变量来进行限定。需要注意的是slots的限定只对当前类的对象生效,对子类并不起任何作用。

class Person(object):

    # 限定Person对象只能绑定_name, _age和_gender属性
    __slots__ = ('_name', '_age', '_gender')

3.main设定
为了防止B脚本引用A脚本时,会将A脚本的语句知行,常用此方法,这样只有运行A脚本时,A脚本内部的命令才会执行,在B脚本中引用A脚本时,不会运行A脚本的命令。

def main():
    # Todo: Add your code here
    pass


if __name__ == '__main__':
    main()

4.类的继承
父类可以建立主要的信息,子类继承父类的基础上进行扩充,def__init__(self,)可做类的第一个函数,用于规定类的默认变量,后续的函数用self可以使用这些变量。子类带上父类class Student(Person),使用super()init便可以使用父类的变量。

class Person(object):
    """人"""

    def __init__(self, name, age):
        self._name = name
        self._age = age
    def play(self):
        print('%s正在愉快的玩耍.' % self._name)
class Student(Person):
    """学生"""

    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self._grade = grade
    def study(self, course):
        print('%s的%s正在学习%s.' % (self._grade, self._name, course))

stu = Student('王大锤', 15, '初三')
    stu.study('数学')
    stu.watch_av()
    t = Teacher('骆昊', 38, '老叫兽')
    t.teach('Python程序设计')
    t.watch_av()

5.文件操作命令
操作模式 具体含义
'r' 读取 (默认)
'w' 写入(会先截断之前的内容)
'x' 写入,如果文件已经存在会产生异常
'a' 追加,将内容写入到已有文件的末尾
'b' 二进制模式
't' 文本模式(默认)
'+' 更新(既可以读又可以写)
6.简单的文件读取

def main():
    f = open('致橡树.txt', 'r', encoding='utf-8')
    print(f.read())
    f.close()


if __name__ == '__main__':
    main()

7.if特殊用法
if 的判断条件是非空或者非0,即可执行后续的行为。故下面的语句只有在f为非空值或者非0条件下才会执行。

f=None
if f:
  print('空值')

8.文件异常处理

def main():
    f = None
    try:
        f = open('致橡树.txt', 'r', encoding='utf-8')
        print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')
    finally:
        if f:
            f.close()


if __name__ == '__main__':
    main()

先将可能出现错误的文件执行语句放在try语句中,except语句跟可能的错误,最后用finally语句实现文件的关闭。
更常用的替代方法是使用关键字with

def main():
    try:
        with open('致橡树.txt', 'r', encoding='utf-8') as f:
            print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')


if __name__ == '__main__':
    main()

9.文件的读取与写入

 with open('致橡树.txt', mode='r') as f:
     #读取
     print(f.read())
     print(f.readlines())
     #写入
     f.write(str(number))

用with会自动释放文件资源,如果用的不是with,在文件读取写入后,需要使用f.close()关闭,释放资源。
10.json文件写入

with open('data.json', 'w', encoding='utf-8') as fs:
            json.dump(mydict, fs)
#mydict是想要写入的内容

json模块主要有四个比较重要的函数,分别是:

dump - 将Python对象按照JSON格式序列化到文件中
dumps - 将Python对象处理成JSON格式的字符串
load - 将文件中的JSON数据反序列化成对象
loads - 将字符串的内容反序列化成Python对象
11.正则表达式是一种工具,它定义了字符串的匹配模式


image.png
image.png
image.png
image.png

Python提供了re模块来支持正则表达式相关操作,下面是re模块中的核心函数。


image.png
image.png
12.像素
对于一个由数字序列表示的图像来说,最小的单位就是图像上单一颜色的小方格,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置决定了该图像最终呈现出来的样子,它们是不可分割的单位,我们通常称之为像素(pixel)。每一个图像都包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
13.pillow图像操作
from PIL import Image
#打开图片
image=Image.open('./1.jpg')
#图像格式,尺寸,模式
image.format,image.size,image.mode
#展示图片
image.show()

图像裁剪

#xmin,ymin,xmax,ymax
crop_size=30,20,45,60
image.crop(crop_size).show()

图像缩放

image=Image.open('./1.jpg')
size=(128,128)
image.thumbnail(size)
image.show()

图像旋转与翻转

image=Image.open('./1.jpg')
image.rotate(180)
image.transpose(Image.FLIP_LEFT_RIGHT)

14.linux知识

  • 重启和关机 - reboot / shutdown
  • 查看历史命令 - history
  • 创建/删除空目录 - mkdir / rmdir
  • 创建/删除文件 - touch / rm
    rm的几个重要参数:
    -i:交互式删除,每个删除项都会进行询问。
    -r:删除目录并递归的删除目录中的文件和目录。
    -f:强制删除,忽略不存在的文件,没有任何提示。
  • 根据指定URL下载资源,使用wget命令
wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
  • 查看文件内容 cat
  • 拷贝/移动文件 - cp / mv
  • 文件重命名 - rename。

相关文章

网友评论

      本文标题:Python100天学习笔记

      本文链接:https://www.haomeiwen.com/subject/ubhhzqtx.html