备注:
知识整理:整理python相关知识,包括不限于python基础的关键字。随着我的学习步伐,会同步更新更多的东西
作用:打破循环
示例:
while True:
print("1")
break
作用:类,用于面向对象编程
示例:
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
作用:打破本次循环
示例:
while True:
for i in range(10):
if i >2:
print("1")
continue
break
作用:定义函数
示例:
def func():
print("abc")
func1 = func()
作用:字典,key+value的容器,类似于簇
示例:
dict1 = {'1':1,'2':2,'3':3}
示例:
for i in range(10):
print(i)
示例:
if a=1:
print("1")
elif a=2:
print("2")
else:
print("0")
作用:引入模块,即引入其他的程序
示例:
import time
time.time
argparse
作用:获取外部输入参数的模块。用于处理 Python 命令行参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
示例:
import argparse
parser = argparse.ArgumentParser() # 创建解析对象
parser.parse_args() # 解析
作用:用于解析HTML信息
示例:
from bs4 import BeautifulSoup ??
soup = BeautifulSoup(html_doc,"html.parser") ?
将数据转换成指定格式,方便解析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")
可配合字符串匹配使用:
import re ?
soup.find(re.compile("b"))
BeautifulSoup.find_all(class_=””) # class需要在后面加下划线
作用:用于引用BeautifulSoup 库(需要终端输入安装:pip install bs4 或pip3 install bs4)
作用:用于进行哈希操作
示例:
import hashlib
sha256_hash = hashlib.new('sha256')
sha256_hash.update(b'RUNOOB')
print(sha256_hash.hexdigest())
作用:用于操作Json文件
示例:
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps(data)
print(data2)
Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。
操作数据库
示例:
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 = """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 = "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 = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 发生错误时回滚
db.rollback()
db.close()
用于操作EXCEL文件(需要在终端输入安装:pip install openpyxl?或者pip3 install openpyxl)
作用:用于比较的函数
示例:
import operator
# 数字
x = 10
y = 20
print("x:",x, ", y:",y)
print("operator.lt(x,y): ", operator.lt(x,y))
作用:操作文件
import os
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )
fo = open("foo.txt", "w")
print "文件名: ", fo.name
fo.close
关闭文件
读取文件
删除文件
重命名文件
当前文件位置
写入文件
打开文件
改变当前目录
表示用户的环境变量,用于获取和设置环境变量
显示当前工作目录
在当前目录创建新的目录
删除目录
作用:用于创建可视化图标
示例:
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()
作用:正则表达式
示例:
import re
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配
生成正则表达式的对象
import re
pattern = re.compile(r'\d+') # 用于匹配至少一个数字
m = pattern.match('one12twothree34four') # 查找头部,没有匹配
作用:从起始位置匹配字符串
示例:
import re
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配
查找字符串
import re
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
分割字符串
import re
re.split('o', 'hello world')
替换字符串
import re
phone = "2004-959-559 # 这是一个国外电话号码"
# 删除字符串中的 Python注释
num = re.sub(r'#.*$', "", phone)
print "电话号码是: ", num
作用:用于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)
200为正常读取;404为访问不存在;
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: 无法发送邮件"
作用:用于进行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() ???????????????# 关闭连接
作用:可以帮助我们分析和计算数据集的统计特征
创建子进程,可用于调用外部文件。
示例:
import subprocess
ret = subprocess(“serial_swap.py”,shell=true,cwd=”c:\iRobot”)
作用:实现多线程测试的模块
示例:
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
返回线程名。
返回线程是否活动的。
等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。
用以表示线程活动的方法。
设置线程名。
启动线程活动。
返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。
除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法:
返回当前的线程变量。
返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
作用: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() ????????????????# 进入消息循环
作用:获取日期和时间的模块
示例:
import time
print(time.time())
作用:用于向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 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。
作用:等待用户输入字符串
示例:
str = input(请输入:)
作用:等同于数组
list1 = [1,2,3]
作用:数字
作用:空语句,保持程序完整性
if True:
pass
作用:打印信息
示例:
print("abc")
运算符
+加、减-、乘*、除/、取余%、**幂、//取整除
作用:字符串
作用:1、返回函数的返回值;2、终?程序的运?,提前退出。
示例:
def mylen():
????# 函数体 缩进代表包含意思
????a='hello'
????length=0
????for i in a :
????????length+=1
????# print(length)
????return length
作用:异常处理
示例:
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print "Error: 没有找到文件或读取文件失败"
else:
print "内容写入文件成功"
fh.close()
finally:
print "Error: 没有找到文件或读取文件失败"
作用:元组,不可修改的数组
示例:
tup1=(1,2,3)
示例:
while True:
print("1")
break
->
作用:为函数添加元数据,描述函数返回的类型。
示例:
def add(x:int, y:int) ->bool:
? ? ? ?if(x>y):
? ? ? ? ? ?return True
? ? ? ?else:
? ? ? ? ? ?retur False
这里,表明了函数的参数传入为int类型,输出的类型为bool类型。
Python 标准库包含 SAX 解析器,SAX 用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。
将 XML 数据在内存中解析成一个树,通过对树的操作来操作XML。
ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。