引入 正则表达式是一种描绘字符串的匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 比如我们可以使用以下正则表达式来匹配一个网址: 1[a-zA-Z]+://[^\s]* 其中a-z表示匹配任意的小写字母,A-Z表示匹配任意的大写字母,^\s表示匹配任意的非空白字符,*表示匹配前面的任意多个字符。 本文将介绍正则表达式的基本概念,以及如何使用 Python 的re库进行正则匹配。 常用匹配规则 除了我们上一节说到的几个匹配规则之外,正则表达式还提供了很多的匹配规则,下表列出了常用的一些匹配规则: 模式 描述 \w 匹配字母、数字及下划线 \W 匹配不是宇母、数字及下划线的字符 \s 匹配任意空白字符,等价于[\t\n\r\f] \S 匹配任意非空字符 \d 匹配任意数字,等价于[0-9] \D 匹配任意非数字的字符 \A 匹配字符串开头 \Z 匹配字符串结尾。加果存在换行,只匹配到换行前的结束字符串 \z 匹配字符串结尾。如果存在换行,同时还会匹配换行符 \G 匹配最后匹配 ...
引言 除了两个方面,元组数据类型几乎与列表数据类型一样。 用圆括号()表示 首先,元组输入时用圆括号(),而不是用方括号[]: 12tp = ('Python', 'Java', 'C')print(tp) 不可变 元组与列表的主要区别还在于,元组像字符串一样,是不可变的。元组不能让它们的值被修改、添加或删除: 12tp = ('Python', 'Java', 'C')tp[1] = 'C++' 如果元组中只有一个值,你可以在括号内该值的后面跟上一个逗号,表明这种情况。否则,Python 将认为,你只是在一个普通括号内输入了一个值。逗号告诉 Python,这是一个元组(不像其他编程语言,Python 接受列表或元组中最后表项后面跟的逗号)。 1234a = ('Python')print(type(a))b = ('Python',)print(type(b)) 利用你可以用元组告诉所有读代码的人,你不打 ...
列表是一个值,它包含多个值构成的序列。术语“列表值”指的是列表本身(它作为一个值,可以保存在变量中,或传递给函数,像所有其他值一样),而不是指列表值之内的那些值。 列表值看起来像这样:['apple', 'banana', 'orange', 'watermelon']。 就像字符串值用引号来标记字符串的起止一样,列表用左方括号开始,右方括号结束,即[ ]。列表中的值也称为“表项”。表项用逗号分隔(就是说,它们是“逗号分隔的”)。 列表的长度和内容都是可变的,可自由对列表中数据项进行增加、删除或替换。列表没有长度限制,元素类型可以不同,使用非常灵活。 由于列表属于序列类型,所以列表也支持成员关系操作符(in)、长度计算函数(len())、切片([])。 列表可以同时使用正向递增序号和反向递减序号,可以采用标准的比较操作符(<、<=、==、!=、>=、>)进行比较,列表的比较实际上是单个数据项的逐个比较。 列表的常用操作: 函数或方法 描述 ls[i] = x 替换列表ls第i数据项为x ls[i: j] = lt 用列表lt替换列表ls中第i到 ...
学习笔记
未读什么是序列类型 在程序设计中,经常会遇到要处理很多相同类型的数据的情况,比如统计全班同学的分数、统计每篇博客的浏览量、统计每种商品的单价等等。 这时如果用一个变量存储一个数据,难免有些不便。Python 中的序列类型就能很好地解决这些问题。 序列类型是组合数据类型的一类,能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序更容易。 序列类型是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。 Python中的主要序列类型: 字符串(str):由按照一定顺序组合在一起的字符来构成的,如: 1'Python' 列表(list):包含0个或多个不同类型元素的可变序列类型,用方括号将元素包含在一起,如: 1['Python', 1, 3.14, [2, 2.71], '555'] 元组(tuple):包含0个或多个不同类型元素的不可变序列类型,用圆括号将元素包含在一起,如: 1('Python', 1, 3.14, (2, 2.71), '555' ...
学习笔记
未读模块 是第三方专门为了解决某些特定问题而编写的工具。Python 本身自带了一些常用的模块,例如,math模块中具有较为复杂的求解正弦、余弦和平方根等运算,这些模块不需要安装,但是在使用前需要导入。 Windows 下安装非标准库,需要在命令提示符中输入: 1pip install 库名 Linux 和 MacOS 中则是在终端输入上述命令。 导入模块使用 import 关键字,Python 中导入模块有不同的方法。 import 模块名 导入整个模块: 12import mathmath.sqrt(64) import 模块名 as 名称缩写 导入整个模块的同时给该模块取个较短的别名: 12import numpy as npnp.sqrt(64) import 模块名.子模块名 as 名称缩写 导入某个模块子模块的同时给该子模块取个较短的别名: 1import matplotlib.pyplot as plt from 模块名 import 函数 导入模块中指定函数: 12from math import sqrt, expsqrt(64) from 模块名.子模块名 impor ...
学习笔记
未读Python 中共有 75 个内置函数,这些是 Python 自带的函数,在需要使用时可以直接调用。 下表列出了一些常用的 Python 内置函数: 函数名称 代码示例 结果 功能描述 abs x = -5abs(x) 5 求绝对值 float float(‘8.8’) 8.8 将整数或者字符串转换为浮点数 int int(8.8) 8 将浮点数截断小数部分后转换为整数或者将只包含数字的字符串转换化为整数 len len(‘你好世界’) 4 获得字符串、列表、元组、集合或字典的长度(即元素个数) max max(8,-8.8,3,32,24.5) 32 获得一组数据中最大值 min min(8,-8.8,3,32,24.5) -8.8 获得一组数据中最小值 range list(range(0,6,3)) [0,3] 产生一个可迭代对象,在此列中从0开始到6之前(即不包括6),以步长为3产生可迭代对象后利用list函数转换成列表 sum sum([8,-8.8,3,32,24.5]) 58.7 获得一组数据的和,在此列中获得列表[10,3, - ...
bool类型 Python 中的布尔类型只有两种值:True 和 False。 bool类型是数字类型,在参与数学计算时会分别转型为1,0: 1print(True + False) 逻辑运算 Python 中3个布尔操作符(and、or 和not)被用于进行逻辑运算,分别代表与、或、非三种逻辑运算: a b a and b a or b not a False False False False True False True False True True True False False True False True True True True False 运算优先级由高到低为:not,and,or。 1print(False or not False and True) 关系运算 bool类型值通常来自于关系运算的结果,下面是 Python 中包含的各种关系比较的操作符: 运算符 样例 结果 功能说明 < 5 < 4 False 小于 > 5 > 4 True 大于 <= 5 <= ...
input() 控制台输入 input()函数等待用户在键盘上输入一些文本,并按下回车键。返回一个字符串,即用户输入的文本: 12num = input()print(num * 3) 函数可以传入一个字符串参数,作为输入的提示语: 12num = float(input('请输入一个数字:'))print(num * 3) print() 控制台输出 print()函数的作用是将输入的参数打印出来,默认打印到屏幕上: 1print('hello') 函数可以同时传入多个字符串参数,它们之间默认用空格隔开打印: 1print('hello', 'world', '!') 传入关键字参数sep可以改变默认的间隔字符(默认为空格' '): 1print('hello', 'world', '!', sep='+') 函数打印结尾默认会添加换行符'\n',通过传入关键字参数end改变结尾字符: 123print( ...
学习笔记
未读获取字符串长度函数 len() len()函数可以帮助我们获取字符串长度,即字符串中字符的个数: 1print(len('Python')) 字符串的 in 和 not in 操作符 in 和not in 操作符可以用于第一个字符串(大小写敏感)是否在第二个字符串中,返回一个 bool 类型的值: 12print('Hello' in 'Hello World!')print('hello' in 'Hello World!') 字符串方法 upper()、lower() upper()和lower()字符串方法返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中非字母字符保持不变。 12print('Hello World!'.upper())print('Hello World!'.lower()) 字符串方法 isX() Python中有许多判断字符串的isX()方法: isupper(),如果字符串含有字母, ...
学习笔记
未读基本概念 字符串被用来表示文本。在 Python 中,字符串是用两个双引号" "或者单引号' '括起来的一个或多个字符。当字符串较长时,也会用三引号''' '''编写多行字符串。 在 Python 中,字符串类型用关键字 str 表示(即英文单词 string 的简写)。 12hi = 'Hello World!'print(hi) 转义字符 当字符串内容中包含引号时,Python 会错误理解字符串的包含范围。 1a = 'What's your name?' 这时我们有两种方法解决问题,第一种是改用不同的引号来包裹字符串: 1a = "What's your name?" 但是这种方法有局限性,当字符串内容中有所有类型的引号时,这种方法仍不能很好地划清界限,所以我们更常用的一种方法是使用转义字符: 1a = 'What\'s your name?' 像\'这种反斜杠\加字符的形式就叫做转义字符,它们合起来表示一个字符,Python 中常用的转义字符有: ...