Python知识整理

发布时间:2024年01月10日

[20240110]

备注:

知识整理:整理python相关知识,包括不限于python基础的关键字。随着我的学习步伐,会同步更新更多的东西

关键字

break

作用:打破循环

示例:

while True:

print("1")

break

class?类

作用:类,用于面向对象编程

示例:

class Employee:

'所有员工的基类'

empCount = 0

def __init__(self, name, salary):

self.name = name

self.salary = salary

Employee.empCount += 1

def displayCount(self):

print "Total Employee %d" % Employee.empCount

def displayEmployee(self):

print "Name : ", self.name, ", Salary: ", self.salary

continue

作用:打破本次循环

示例:

while True:

for i in range(10):

if i >2:

print("1")

continue

break

def?函数

作用:定义函数

示例:

def func():

print("abc")

func1 = func()

dictionary?字典

作用:字典,key+value的容器,类似于簇

示例:

dict1 = {'1':1,'2':2,'3':3}

for

示例:

for i in range(10):

print(i)

if

示例:

if a=1:

print("1")

elif a=2:

print("2")

else:

print("0")

import?模块引入

作用:引入模块,即引入其他的程序

示例:

import time

time.time

argparse

作用:获取外部输入参数的模块。用于处理 Python 命令行参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

示例:

import argparse

parser = argparse.ArgumentParser() # 创建解析对象

parser.parse_args() # 解析

BeautifulSoup?bs4内HTML解析库

作用:用于解析HTML信息

示例:

from bs4 import BeautifulSoup ??

soup = BeautifulSoup(html_doc,"html.parser") ?

BeautifulSoup

将数据转换成指定格式,方便解析HTML

示例:

import requests

from bs4 import BeautifulSoup

url = "https://movie.douban.com/"

headers = {

????"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"

}

# 3、解析信息

soup = BeautifulSoup(requests.get(url,headers=headers).content,"html.parser")

BeautifulSoup.find 查找第一个string

可配合字符串匹配使用:

import re ?

soup.find(re.compile("b"))

BeautifulSoup.find().decompose 删除第一个string
BeautifulSoup.find_all 查找所有string

BeautifulSoup.find_all(class_=””) # class需要在后面加下划线

BeautifulSoup.select() 选择标签
BeautifulSoup.select().get_text() 选择标签内的文本

bs4 HTML解析库

作用:用于引用BeautifulSoup 库(需要终端输入安装:pip install bs4 或pip3 install bs4)

hashlib 哈希操作

作用:用于进行哈希操作

示例:

import hashlib

sha256_hash = hashlib.new('sha256')

sha256_hash.update(b'RUNOOB')

print(sha256_hash.hexdigest())

json 操作Json文件

作用:用于操作Json文件

示例:

import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

data2 = json.dumps(data)

print(data2)

json.dumps Json数组编码
json.loads 解码Json数据

Jython Java开发GUI库

Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

MySQLdb?数据库操作

操作数据库

示例:

import MySQLdb #引入mysql模块

# 打开数据库连接?

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标?

cursor = db.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。

cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 创建数据表SQL语句?

sql = """CREATE TABLE EMPLOYEE (

FIRST_NAME CHAR(20) NOT NULL,

LAST_NAME CHAR(20),

AGE INT,

SEX CHAR(1),

INCOME FLOAT )"""

#?执行指令,上传至数据库

cursor.execute(sql)

# 插入数据库指令

sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \

LAST_NAME, AGE, SEX, INCOME) \

VALUES (%s, %s, %s, %s, %s )" % \

('Mac', 'Mohan', 20, 'M', 2000)

try:

# 执行sql语句

cursor.execute(sql)

# 提交到数据库执行

db.commit()

except:

# 发生错误时回滚

db.rollback()

# SQL 查询语句?

sql = "SELECT * FROM EMPLOYEE \

WHERE INCOME > %s" % (1000)

try:

# 执行SQL语句?

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

for row in results:

fname = row[0]

lname = row[1]

age = row[2]

sex = row[3]

income = row[4]

# 打印结果

print "fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \

(fname, lname, age, sex, income )

except:

print "Error: unable to fetch data"

# SQL 更新语句?

sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')

try:

# 执行SQL语句

cursor.execute(sql)

# 提交到数据库执行

db.commit()

except:

# 发生错误时回滚

db.rollback()

# SQL 删除语句?

sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)

try:

# 执行SQL语句

cursor.execute(sql)

# 提交修改

db.commit()

except:

# 发生错误时回滚

db.rollback()

# 关闭数据库连接?

db.close()

openpyxl EXCEL操作

用于操作EXCEL文件(需要在终端输入安装:pip install openpyxl?或者pip3 install openpyxl)

operator 比较

作用:用于比较的函数

示例:

import operator

# 数字

x = 10

y = 20

print("x:",x, ", y:",y)

print("operator.lt(x,y): ", operator.lt(x,y))

os?文件操作

作用:操作文件

import os

# 重命名文件test1.txt到test2.txt。

os.rename( "test1.txt", "test2.txt" )

fo = open("foo.txt", "w")

print "文件名: ", fo.name

fo.close

f.close()

关闭文件

f.read()

读取文件

f.remove()

删除文件

f.rename()

重命名文件

f.tell()

当前文件位置

f.write()

写入文件

open()

打开文件

os.childir()

改变当前目录

os.environ

表示用户的环境变量,用于获取和设置环境变量

os.getcwd

显示当前工作目录

os.mkdir()

在当前目录创建新的目录

os.rmdir()

删除目录

pyecharts 图表模块

作用:用于创建可视化图标

示例:

from pyecharts.charts import Bar

# 准备数据

x_data = ['一月', '二月', '三月', '四月', '五月']

y_data = [10, 20, 15, 25, 30]

# 创建柱状图

bar_chart = Bar()

bar_chart.add_xaxis(x_data)

bar_chart.add_yaxis("销售额", y_data)

# 也可以传入路径参数,如 bar_chart.render("bar_chart.html")

bar_chart.render()

re?正则表达式

作用:正则表达式

示例:

import re

print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配

re.compile

生成正则表达式的对象

import re

pattern = re.compile(r'\d+') # 用于匹配至少一个数字

m = pattern.match('one12twothree34four') # 查找头部,没有匹配

re.match()

作用:从起始位置匹配字符串

示例:

import re

print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配

re.search()

查找字符串

import re

print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配

re.split()

分割字符串

import re

re.split('o', 'hello world')

re.sub()

替换字符串

import re

phone = "2004-959-559 # 这是一个国外电话号码"

# 删除字符串中的 Python注释

num = re.sub(r'#.*$', "", phone)

print "电话号码是: ", num

requests HTTP请求库

作用:用于HTTP通讯,抓取信息(需要在终端输入安装:pip install requests 或者pip3 install requests)

import requests

# 请求头,模拟浏览器向ul发送请求

headers = {

????"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"

}

data1 = requests.get("http://movie.douban.com",headers=headers)

print(data1.status_code) ???# 获取响应状态,200为ok

data = data1.text # 提取string数据

print(data)

requests.get?爬取数据
requests.get().content 数据转换为二进制文本
requests.get().json 数据转换为对象
requests.get().text 数据转换为字符串文本
requests.get().status_code 获取请求状态

200为正常读取;404为访问不存在;

smtplib SMTP发送邮件

import smtplib

from email.mime.text import MIMEText

from email.header import Header

sender = 'from@runoob.com'

receivers = ['429240967@qq.com'] ?# 接收邮件,可设置为你的QQ邮箱或者其他邮箱

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')

message['From'] = Header("菜鸟教程", 'utf-8') ??# 发送者

message['To'] = ?Header("测试", 'utf-8') ???????# 接收者

subject = 'Python SMTP 邮件测试'

message['Subject'] = Header(subject, 'utf-8')

try:

????smtpObj = smtplib.SMTP('localhost')

????smtpObj.sendmail(sender, receivers, message.as_string())

????print "邮件发送成功"

except smtplib.SMTPException:

print "Error: 无法发送邮件"

socket TCP/TP通讯

作用:用于进行TCP/IP通讯

示例:

import socket ??????????????# 导入 socket 模块

s = socket.socket() ????????# 创建 socket 对象

host = socket.gethostname() # 获取本地主机名

port = 12345 ???????????????# 设置端口

s.bind((host, port)) ???????# 绑定端口

s.listen(5) ????????????????# 等待客户端连接

while True:

????c,addr = s.accept() ????# 建立客户端连接

????print '连接地址:', addr

????c.send('欢迎访问菜鸟教程!')

c.close() ???????????????# 关闭连接

statistics?统计计算函数

作用:可以帮助我们分析和计算数据集的统计特征

subprocess 子进程

创建子进程,可用于调用外部文件。

示例:

import subprocess

ret = subprocess(serial_swap.py,shell=true,cwd=c:\iRobot)

thread 多线程

作用:实现多线程测试的模块

示例:

import thread

import time

# 为线程定义一个函数

def print_time( threadName, delay):

???count = 0

???while count < 5:

??????time.sleep(delay)

??????count += 1

??????print "%s: %s" % ( threadName, time.ctime(time.time()) )

# 创建两个线程

try:

???thread.start_new_thread( print_time, ("Thread-1", 2, ) )

???thread.start_new_thread( print_time, ("Thread-2", 4, ) )

except:

???print "Error: unable to start thread"

while 1:

???pass

getName():

返回线程名。

isAlive():

返回线程是否活动的。

join([time]):

等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

run():

用以表示线程活动的方法。

setName():

设置线程名。

start():

启动线程活动。

threading.activeCount():

返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法:

threading.currentThread():

返回当前的线程变量。

threading.enumerate():

返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。

tkinter 标准GUI库

作用:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

示例:

#from tkinter import *

root = Tk() ????????????????????# 创建窗口对象的背景色

????????????????????????????????# 创建两个列表

li ????= ['C','python','php','html','SQL','java']

movie ?= ['CSS','jQuery','Bootstrap']

listb ?= Listbox(root) ?????????# ?创建两个列表组件

listb2 = Listbox(root)

for item in li: ????????????????# 第一个小部件插入数据

????listb.insert(0,item)

for item in movie: ?????????????# 第二个小部件插入数据

????listb2.insert(0,item)

listb.pack() ???????????????????# 将小部件放置到主窗口中

listb2.pack()

root.mainloop() ????????????????# 进入消息循环

time?时间获取

作用:获取日期和时间的模块

示例:

import time

print(time.time())

urllib.requests HTTP请求库

作用:用于向HTTP发送请求

示例:

import urllib.request ??????#导入urllib库

url = urllib.request.urlopen("http://www.baidu.com") ???????#需要抓取数据的网站

data = url.read()

dt1 = open("2.html","wb") ???# 生成html文件,使用了相对路径

# dt1 = open("2.xls","wb") ??# 生成xls文件,使用了相对路径

dt1.write(data) ??#将数据写入D:/Code/data/2.xls表中

dt1.close()

print(data)

wxPython 开源GUI库

wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

input?等待用户输入

作用:等待用户输入字符串

示例:

str = input(请输入:)

list?列表

作用:等同于数组

list1 = [1,2,3]

number?数字

作用:数字

pass?空语句

作用:空语句,保持程序完整性

if True:

pass

print?打印文本

作用:打印信息

示例:

print("abc")

运算符

+加、减-、乘*、除/、取余%、**幂、//取整除

string?字符串

作用:字符串

return 返回值

作用:1、返回函数的返回值;2、终?程序的运?,提前退出。

示例:

def mylen():

????# 函数体 缩进代表包含意思

????a='hello'

????length=0

????for i in a :

????????length+=1

????# print(length)

????return length

try?错误处理

作用:异常处理

示例:

try:

fh = open("testfile", "w")

fh.write("这是一个测试文件,用于测试异常!!")

except IOError:

print "Error: 没有找到文件或读取文件失败"

else:

print "内容写入文件成功"

fh.close()

finally:

print "Error: 没有找到文件或读取文件失败"

tuple?元组

作用:元组,不可修改的数组

示例:

tup1=(1,2,3)

while

示例:

while True:

print("1")

break

->

作用:为函数添加元数据,描述函数返回的类型。

示例:

def add(x:int, y:int) ->bool:

? ? ? ?if(x>y):

? ? ? ? ? ?return True

? ? ? ?else:

? ? ? ? ? ?retur False

这里,表明了函数的参数传入为int类型,输出的类型为bool类型。

xml 解析XML

SAX (simple API for XML )

Python 标准库包含 SAX 解析器,SAX 用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。

DOM(Document Object Model)

将 XML 数据在内存中解析成一个树,通过对树的操作来操作XML。

ElementTree(元素树)

ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。

文章来源:https://blog.csdn.net/weixin_42645007/article/details/135378133
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。