Python字符串和正则表达式
【字符串和正则表达式】
【1】字符串的格式化
print()函数,实现输出字符。
运算符“%”限定输出数据的显示样式。
格式字符串的格式:
<格式字符串>%(<值1>,<值2>,…,<值n>)
print("今天是%d年%d月%d日,天气%s!"%(2017,5,16,'晴'))
运行结果:今天是2017年5月16日,天气晴!
【2】字符串的索引与分片
(1)索引:字符串中的字符按位置进行了编号,也称为索引,使用时可以通过这个编号访问字符串中的特定字符。
Python同时允许根据索引,反向访问字符串,此时字符串的编号从-1开始。
(2)字符串的分片是指通过索引对字符串进行切片的操作。分片操作格式:
<字符串名>[i:j:k]
i表示起始编号,j表示结束编号,k表示编号增加步长。注意,切片的位置不包含j位置上的字符。
分片语句中i、j、k均可以省略。
i省略时,表示从0或-1开始;
j省略时,表示到最后一个字符;
k省略时,表示步长为1。
st=input('输入一个字符串:')
print("原字符串:%s"%(st))
print("逆序字符:%s"%(st[-1::-1]))
运行结果:
输入一个字符串:12345678
原字符串:12345678
逆序字符:87654321
【3】字符串的基本运算
包括字符串的连接、判断子串、字符串的比较等。
s1+s2 连接字符串s1和s2
s1*n 生成由n个s1组成的字符串
s1 in s2 如果s1是s2的子串,返回True,否则False
【基本操作】
【4】正则表达式(Regular Expression)描述了一种字符串匹配的模式,用来检查一个字符串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
使用正则表达式的方法:
(1)直接使用re模块
(2)使用正则表达式对象:首先使用re模块的compile()方法将正则表达式编译生成正则表达式对象,然后再使用正则表达式对象的方法进行字符串处理。
Python函数和模块
【Python函数和模块】
函数包括系统函数和自定义函数。
在Python 中,定义函数的语法如下:
def <函数名>([参数列表]):
<函数体>
注意
def关键字用来定义函数,函数名是由用户定义的任何有效的标识符,函数名后面的圆括号必须有,其中的参数列表中的参数由变量充当,多个参数之间用“,”分隔。
在函数体内的参数被称为形式参数,简称形参。
调用该函数时,括号内的参数被称为实际参数,简称实参。
括号后面的冒号必不可少,函数体至少有一条语句,必须保持缩进。
【1】函数的定义
del MyfirstFunction(): //定义函数,函数名后的括号不可省
print("这是第一个函数")
print("我非常喜欢学习python")
MyFirstFunction() //调用函数
【2】函数调用格式如下:
<函数名>(<参数列表>)
调用函数的三种方式:
(1)直接调用函数名,此时将函数语句完整执行一遍,调用程序往往不需要函数的返回值;
(2)函数作为表达式的一部分出现,此时调用程序将使用函数的返回值,并参与表达式的数据计算;
(3)函数被嵌套在另一个函数中,函数的返回值被当作另外函数的实参使用
【3】参数传递的方式
传递不可变对象,在函数体中形参值的变化不会影响到实参。
传递是可变对象,在函数中形参值的变化会影响到实参。
//传递不可变对象,形参变化不影响实参
def add(x):
print("形参x的初始值是:",x)
x+=1
print("形参x的最终值是:",x)
y=4
add(y)
print("实参y的值是:",y)
运行结果:
形参x的初始值是: 4
形参x的最终值是: 5
实参y的值是: 4
//传递可变对象,形参变化影响实参
def change(v):
v.append(3)
print(v)
m=[1]
change(m)
print(m)
运行结果:
[1, 3]
[1, 3]
【4】参数
1、位置参数
def posi_args(a,b):
print("第一个参数的值是:",a)
print("第二个参数的值是:",b)
posi_args(100,200)
posi_args(200,100)
运行结果:
第一个参数的值是: 100
第二个参数的值是: 200
第一个参数的值是: 200
第二个参数的值是: 100
2、关键字参数:参数位置不必一一对应
def keywords(a,b):
print("传递给参数a的值为",a)
print("传递给参数b的值为",b)
keywords(100,200)
keywords(b=200,a=100)
keywords(a=100,b=200)
运行结果:
传递给参数a的值为 100
传递给参数b的值为 200
传递给参数a的值为 100
传递给参数b的值为 200
传递给参数a的值为 100
传递给参数b的值为 200
3、默认参数
def power(x,n = 2): #定义默认值参数n
s=1
for i in range(1,n+1):
s=s * x
return s
print(power(5)) #形参n的默认值为2,求5的平方
print(power(6)) #形参n的默认值为2,求6的平方
print(power(5,3)) #改变默认值参数n的值,求5的3次方
print(power(3,4)) #改变默认值参数n的值,求3的4次方
运行结果:
25
36
125
81
【5】变量的作用域
变量的作用域指的是变量的作用范围。
分类:分为全局变量(Global variables)和局部变量(Local variables)。
【6】模块的使用
在Python中,一个.py文件被称为一个模块(Module)。
模块是一个包含所有定义的函数和变量的文件,其后缀名是.py。
1、模块的导入
import math
math.sqrt(9)
运行结果:
3.0
2、导入模块下的单个函数:
from <模块名> import <函数名> [as <别名>]
3、导入模块下的所有函数:
from <模块名> import *
4、自定义模块
创建Python文件(扩展名.py),作为模块被导入并使用模块内部的函数(对象)
python文件处理
【1】分类:文本文件;二进制文件。
【2】文件的打开、关闭、读写、定位
在Python语言中,可以用open()和file()内置函数来打开文件。
【打开】 //open()函数打开文件
<文件对象名>=open(<文件名>[,<访问方式>] [,<缓冲方式>])
【关闭】 //close()函数
<文件对象名>.close()
文件内容的读取可以通过以下三个函数来实现:read()、readline()和readlines()
【read()函数】//可一次性全部读取,也可指定每次读多少个字节
<变量>=<文件对象>.read([size])
【readline()函数】 //只读取文件中一行数据
<变量>=<文件对象>.readline([size])
【readlines】//一次性读取当前位置指针指向处后面的所有内容
<变量>=<文件对象>.readlines()
将数据写入文件可以通过两个函数来实现:write()和writelines()
//write()函数 将一个字符串写入文件
<文件对象>.write(<变量>)
//writelines()函数是将列表中的字符串内容写入到文件中
<文件对象>.writelines(<列表>)
文件的定位
//seek()函数,改变文件的位置
<文件对象>.seek(<偏移量>,<起始点>
//tell()函数,获取文件位置指针的当前位置
<文件对象>.tell()
python异常处理
【1】Python的常见异常
1.除零错误(ZeroDivisionError)
2.变量名错误(NameError)
3.操作数类型错误(TypeError)
4.下标越界错误(IndexError )
5.打开文件错误(FileNotFoundError)
6.语法错误
【2】异常处理方法
try…except语句
try:
<被检测的程序代码>
except <异常类型>:
<异常处理的程序代码>
try…except…else
具体结构如下:
try:
<被检测的程序代码>
except <异常类型>:
<异常处理的程序代码>
else:
<正常处理的程序代码>
处理多重异常的try…except结构
try:
<被检测的程序代码>
except <异常类型1>:
<异常处理的程序代码1>
[except <异常类型2>:
<异常处理的程序代码2>]
[except <异常类型3>:
<异常处理的程序代码3>]
try…except…finally语句
具体结构如下:
try:
<被检测的程序代码>
except <异常类型>:
<异常处理的程序代码>
finally:
<必定执行的程序代码>