hashlib和hmac
type
status
date
slug
summary
tags
category
icon
password
Property

摘要算法

Pythonhashlib提供了常见的摘要算法,如MD5,SHA1等等。
摘要算法又称哈希算法、散列算法,通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,可以发现原始数据是否被人篡改过。
摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。
以常见的摘要算法MD5为例,计算出一个字符串的MD5值:
如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:
urllib、XML、HTMLParser、requests
type
status
date
slug
summary
tags
category
icon
password
Property
目录
目录

 

urllib

urllib提供了一系列用于操作URL的功能

Get

rllibrequest模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应:
例如,对豆瓣的一个URLhttps://api.douban.com/v2/book/2129650进行抓取,并返回响应:
可以看到HTTP响应的头和JSON数据:
其他常用模块
type
status
date
slug
summary
tags
category
icon
password
Property
目录
目录

 
 

turtle

在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。海龟绘图(Turtle Graphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的Turtle Graphics的所有功能。
指挥小海龟绘制一个长方形的简单代码:
初识Pyqt5
type
status
date
slug
summary
tags
category
icon
password
Property
 
notion image
PyQt本质上还是Qt,是一个用C++写的一个跨平台的GUI开发框架。PyQt是Qt用Python进行了绑定,在保留原有的API时实现了原有的所有功能。
是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS。Pyqt5是双重许可,开发者可以在GPL和商业许可之间进行选择
 
 

Pyqt5主要的模块

QWidget
type
status
date
slug
summary
tags
category
icon
password
Property
 
 

简单窗口

notion image
 

QWidget

QWidget是所有可视化控件的基类,包含下面几点特性
  • 控件是用户界面的最小的元素
  • 每个控件都是矩形的,按照Z轴顺序排序(垂直于桌面),前面的会覆盖后面的
  • 控件由其父控件和前面的控件裁剪
  • 没有父控件的控件就是窗口
主窗口
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
QMainWindow提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏
主窗口是下面这些窗口的合称

状态栏

notion image
 

菜单栏

菜单栏是非常常用的,是一组命令的集合(Mac OS下状态栏的显示不一样,为得到最相似的外观,可以增加一行语句menubar.setNativemenuBar(False))
notion image
布局管理
type
status
date
slug
summary
tags
category
icon
password
Property
notion image

绝对定位

每个程序都是以像素为单位区分元素的位置,衡量元素的大小,所以完全可以使用绝对定位搞定每个元素和窗口的位置
但是有局限性:
  1. 元素不会随着更改窗口的位置和大小而变化
  1. 不能适用于不同的平台和不同分辨率的显示器
  1. 更改应用字体大小会破坏布局
  1. 如果决定重构这个应用,需要全部计算一下每个元素的位置和大小
notion image
 
 
Signals&Slots
type
status
date
slug
summary
tags
category
icon
password
Property
 

事件类型

常见的事件有如下:
  • 键盘事件:按键按下和松开
  • 鼠标事件:鼠标指针移动、鼠标按键按下和松开
  • 拖放事件:用鼠标进行拖放
  • 滚轮事件:鼠标滚轮滚动
  • 绘屏事件:重绘屏幕的某些部
  • 定时事件:定时器到时
  • 焦点事件:键盘焦点移动
  • 进入和离开事件:鼠标指针移入 Widget 内,或者移出
  • 移动事件:Widget 的位置改变
QDialog对话框
type
status
date
slug
summary
tags
category
icon
password
Property
 

QDialog

是对话类窗口(字体框、颜色选择、文件选择框等)的基类
 
 
 

QInputDialog

notion image
 
 
QLabel
type
status
date
slug
summary
tags
category
icon
password
Property
 
标签控件(QLabel)提供了文本或图像显示的功能,可以用来显示:普通文本、数字、富文本、图片、动画(GIF)
但是他没有提供用户交互功能(但是有些时候的富文本里的超链接是可以点击的)
 

对齐

缩进和边距

文本格式

QLabel默认设置的文本是富文本格式,在初始化里如果有富文本是直接按照富文本格式显示的,如果想直接显示纯文本的话就要设置他本身的格式了
 
QCheckBox
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
notion image
 
QPushButton
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
notion image