[总章]python知识整理

[20240129]

备注:

知识整理:整理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信;

注意:需要在终端下载: pip install bs4 和pip install lxml

示例:

from bs4 import BeautifulSoup   

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

使用方式:

1、导入库

import requests

from bs4 import BeautifulSoup

2、实例对象

Soup = BeautifulSoup(open(‘123.html’),’lxml’)

3、定位所有标签

list1 = soup.select('.high-quality-list > ul > li > a > img')

4、提取数据

for i in list1:

    i= 'https:'+i['src']

    print(i)

img_data = requests.get(url=i,headers=headers).content

5、保存数据

img_name = i.split('/')[-1]   # 获取image名称

    imgPath = 'img\\'+img_name+".png"   # image存储路径

    with open(imgPath,'wb') as f:

        f.write(img_data)

    time.sleep(0.05)   # 不要太频繁提取数据,否则会被认为是在攻击网站

BeautifulSoup

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

示例:

import requests

from bs4 import BeautifulSoup

url = "豆瓣电影"

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")

Soup.find 查找第一个tageName

查找第一个目标string。同等与Soup.tageName。

还可以进行属性定位,用法为soup.find(tageName,属性=属性名)。

import requests

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 = soup.find('div',class_='index-left') # ‘div’为目标标签,class_='index-left为目标属性名

print(list1)

Soup.find().decompose 删除第一个string

Soup.find_all 查找所有tageName

查找所有目标string。

进行属性定位,查找所有目标属性数据,用法为soup.find_all(tageName,属性=属性名)。

import requests

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 = soup.find_all('div',class_='index-left') # ‘div’为目标标签,class_='index-left为目标属性名

print(list1)

list2 = soup.find_all(‘img’)

print(list2)

Soup.select() 选择tageName

选择标签,可通过’>’方式查找指定标签目录下的数据;空格表示多个层级。

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 = soup.select('.high-quality-list > ul > li > a > img')[0]   # 选则路径:.high-quality-list类-->ul标签-->li-->a-->img

list1 = soup.select('.high-quality-list > ul a')    # 空格表示多个层级

Soup. 查找标签

查找第一个标签内数据,tageName为目标标签名。

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 =  soup.li

print(f"找到了{len(list1)}个数据")

print(list1)

Soup.tageName[] 获取标签属性内的文本

获取标签内的所有文本

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 =  soup.select('.high-quality-list > ul a > img')[0]['src']   # 获取标签内的属性文本(如’href‘、’src‘),如果属性不存在会报错

Soup.tageName.get_text() 选择标签内的所有文本

获取标签内的所有文本

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 = soup.select('.high-quality-list > ul > li > a > img')[0].get_text()   # 选则路径:.high-quality-list类-->ul标签-->li-->a-->img

Soup.tageName.string() 选择标签内的直系文本

获取标签内的直系文本,即往下的标签目录文本不读取。

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 = soup.select('.high-quality-list > ul > li > a > img')[0].string()   # 选则路径:.high-quality-list类-->ul标签-->li-->a-->img

Soup.tageName.text() 选择标签内的所有文本

获取标签内的所有文本

from bs4 import BeautifulSoup

soup = BeautifulSoup(open(‘123.html’),"lxml")

list1 = soup.select('.high-quality-list > ul > li > a > img')[0].text()   # 选则路径:.high-quality-list类-->ul标签-->li-->a-->img

bs4 HTML解析库

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

extree xpath解析HTML库

作用:通过xpath解析html数据;需要安装pip install lxml

注意:完整xpath路径可以在网页鼠标右键检查目标文本,而后右键复制xpth路径

示例:

from lxml import etree

with open('123.html',mode='r',encoding='utf-8') as f:

    str1 = f.read()

tree = etree.HTML(str1) # 导入本地HTML文档

str = tree.xpath('//div[@class="index-left"]')   # 使用xpath表达式定位标签,返回为对象;'//'表示多个层级,可以从任意层级开始查找;'@class=""'为属性定位

tree.HTML() 实例化HTML文本

用于将HTML文本实例化成extree对象,方便进行xpath数据分析。

tree.xpath 标签定位

用于标签定位;

使用xpath表达式定位标签,返回为对象;

注意:完整xpath路径可以在网页鼠标右键检查目标文本,而后右键复制xpth路径

xpth语法:

'//'表示多个层级,可以从任意层级开始查找;

//*[@id="header"]为从id=header标签开始查找

[@id="header]为属性定位,进一步定位指定标签;

/a[1]为xpath内的索引,xpath的索引是从1开始的;括号外的[1]索引为list索引,和xpath无关;

@src为查找所有属性为src的标签

//text()读取标签文本

示例:

from lxml import etree

with open('123.html',mode='r',encoding='utf-8') as f:

    str1 = f.read()

tree = etree.HTML(str1) # 导入本地HTML文档

# str = tree.xpath('//div[@class="index-left"]')[1]   # 使用xpath表达式定位标签,返回为对象;'//'表示多个层级,可以从任意层级开始查找;'@class=""'为属性定位

# str = tree.xpath('//div[@class="high-quality-list"]//img/@src')[1] # @src为查找所有属性为src的标签

str = tree.xpath('//*[@id="header"]/div[2]/div/p/a[1]//text()')[0] #

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 字节码。

lxml html文本解析库

用于解析html文本,需要安装pip install xlml

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()

pymysql MySQL操作

用于进行Mysql操作,DB上传。

需要安装:pip install pymysql

import pymysql

class DB(object):

    '''import pymysql'''

    def help(self):

        help = '''Before program: You need install lib(pip install pymysql), and then import pymysql.

         

        Create Schema: CREATE SCHEMA `mydb` DEFAULT CHARACTER SET utf8 ;

        

        Create Table: CREATE TABLE `mydb`.`123` (`id` INT NOT NULL, `Name` VARCHAR(45) NULL, `Money` VARCHAR(45) NULL, PRIMARY KEY (`id`))

        ENGINE = InnoDB

        DEFAULT CHARACTER SET = utf8;

        

        

        '''

        print(help)

        return help

    def __init__(self):

        config = INI_File()

        config.Ini('.\cfg\config.ini')

        self.db_handles = None

        self.cursor = None

        self.host = config.Read('DB','IP')

        self.port = config.Read('DB', 'port')

        self.user = config.Read('DB', 'user')

        self.password = config.Read('DB', 'password')

        self.db = config.Read('DB', 'db')

    def connect(self):

        try:

            self.db_handles = pymysql.Connect(host=self.host,

                            port=int(self.port),

                            user=self.user,

                            password=self.password,

                            db=self.db,

                            charset='utf8')

            self.cursor = self.db_handles.cursor()

            log = f'Connect Pass, {self.host,self.port,self.user,self.password,self.db,"utf8"}.'

        except Exception as e:

            log = f'Connect Fail, {self.host,self.port,self.user,self.password,self.db,"utf8"}.\r\n{e.__str__()}'

        return  log

    def upload(self,data):

        '''The tool use to run SQL CMD.

        The keyword must uppercase.关键字必须大写.'''

        try:

            self.cursor.execute(data)   # 运行语句,使用pymysql.connect.curssor handle来操作。

            self.db_handles.commit()    # 上传DB语句,使用pymysql.connect handle来操作。

            if 'UPDATE' in data:

                return 'Update data Pass.'

            elif 'INSERT' in data:

                return 'Insert data Pass.'

            elif 'SELECT' in data:

                return self.cursor.fetchall(), 'Search data Pass.'

        except Exception as e:

            log  = e.__str__()

            if '1062' in log:

                log = f'Have same value in DB table.\r\n{log}'

            elif '1064' in log:

                log = f'SQL CMD error.\r\n{log}'

            elif '1136' in log:

                log = f'Have error value in update data.\r\n{log}'

            elif '' in log:

                log = f'.\r\n{log}'

            print(f'upload Fail.\r\n{log}')

pass # DB调试程序

# d = DB()

# print(d.connect())

# print(d.upload('insert into cssc (SERIAL_NUMBER, MANUFACTURER, ASSEMBLY_DATE) values ("S3", "8563", "2024-01-23 10:19:42")'))

# UPDATE `cssc` SET `ASSEMBLY_DATE`='2024-01-23 10:19:42' WHERE (`SERIAL_NUMBER`='S2') AND (`MANUFACTURER`='8563')

# a = '0,1000'

# b = 'daredevil_elektra.cssc'

# da1 =f'SELECT * FROM {b} LIMIT {a};'  #   切割select语句

# a = 'SERIAL_NUMBER, MANUFACTURER, ASSEMBLY_DATE'

# b = '"S5", "8563", "2024-01-23 10:19:42"'

# da1 = f'INSERT INTO cssc ({a}) VALUES ({b})'    # 切割insert语句

# a=('ASSEMBLY_DATE','2024-01-23 10:19:42')

# da1 = f'UPDATE cssc SET {a[0]} = "{a[1]}" WHERE (SERIAL_NUMBER="S2")'   #切割update语句

# print(d.upload(da1))

pass

pyserial 串口通讯

用于串口通讯

需要安装:pip install pyserial

资料来源:https://www.cnblogs.com/L707/p/16364448.html

import serial

# windows串口设置

ser = serial.Serial(

port=None,   #设置串口号

baudrate=9600,     # 波特率

bytesize=EIGHTBITS,   # 数据位数

parity=PARITY_NONE,   # 奇偶校验位

stopbits=STOPBITS_ONE, # 停止位

timeout=None,      # 读超时设置

xonxoff=0,       # 软件流控,流程控制,解决数据丢失问题

rtscts=0,        # 硬件流控,

#pc机中常用的两种流控制是硬件流控制(包括rts/cts、dtr/cts等)和软件流控制xon/xoff(继续/停止)

interCharTimeout=None)  # 字符间隔超时

# 不同平台下的串口设置

# ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口

# ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口

# ser=serial.Serial(1,9600,timeout=0.5)#winsows系统使用com1口连接串行口

# ser=serial.Serial("com1",9600,timeout=0.5)#winsows系统使用com1口连接串行口

# ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5)#Linux系统使用com1口连接串行口

# 常用方法

ser.isOpen():查看端口是否被打开。

ser.open() :打开端口‘。

ser.close():关闭端口。

ser.read():从端口读字节数据。默认1个字节。

ser.read_all():从端口接收全部数据。

ser.write("hello"):向端口写数据。

ser.readline():读一行数据。

ser.readlines():读多行数据。

in_waiting():返回接收缓存中的字节数。

flush():等待所有数据写出。

flushInput():丢弃接收缓存中的所有数据。

flushOutput():终止当前写操作,并丢弃发送缓存中的数据

re 正则表达式

作用:正则表达式

示例:

import re

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

.*? 缺省表达式

缺省表达式,用于忽略中间内容。一般搭配re.findall使用

re.compile 查找头部

生成正则表达式的对象

import re

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

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

re.findall 查找所有

查找所有对象

import re

str1 = '

class="figure-size-222-295".*?

'

ex = '

img_src_list = re.findall(ex,str1,flag = re.S)

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("豆瓣电影",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("百度一下,你就知道")        #需要抓取数据的网站

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 字符串

作用:字符串

s.find 查找

查找字符串是否存在

in 检测存在

检测字符串是否存在在string内

"etqw"in s

join 连接字符串

连接字符串数组,形成字符串

"_".join(lst) # 以”_“连接字符串数组,形成字符串

len 字符串长度

计算string长度

len(s0)

s.index 索引

查找字符串的索引位置

s.replace 替换字符串

s0=”asdfhj”

s0.replace("a","g")

s.split 分割字符串

s1.split("_") # 以”_”字符切割字符串成数组

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。代码可用性好,速度快,消耗内存少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值