目录
一、数据类型
【函数】:
(1)find()、rfind()、index()、rindex()、count()
(2)split()、rsplit()
(3)join()
(4)strip()、rstrip()、lstrip()
(5)startswith()、endswith()
二、列表 [:]
三、元组
四、集合
五、字典
一、数据类型
1.Python中有6种标准的数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、set(集合)和dictionary(字典)。
(1)数字:①整型(int)
②浮点型(float):整数部分和小数部分,也可以使用科学计数法表示
③复数(complex):实部和虚部,a+bj或complex(a,b),复数的实部和虚部都是浮点型
④布尔型(bool):True和False作为关键字,值分别对应0和1
【数据类型转换】:
(1)int(x)将x转换为一个整数。
(2)float(x)将x转换为一个浮点数。
(3)complex(x, y)将x和y转换为一个复数,实数部分为x,虚数部分为y。x和y是数字表达式。
(2)字符串:''或'
截取字符串[0:]
从左往右截取:0开始,右往左:-1开始
【函数】:
(1)find()、rfind()、index()、rindex()、count()
①find()用来查找一个字符串在另一个字符串指定的范围中首次出现的位置,如果不存在则返回-1;
rfind()方法用来查找一个字符串在另一个字符串指定的范围中最后一次出现的位置,如果不存在则返回-1;
②index()方法用来返回一个字符串在另一个字符串指定范围中首次出现的位置,如果不存在则抛出异常;
rindex()方法用来返回一个字符串在另一个字符串指定范围中最后一次出现的位置,如果不存在则抛出异常;
③count()方法用来返回一个字符串在另一个字符串中出现的次数,如果不存在则返回0。
(2)split()、rsplit()
字符串对象的split()和rsplit()方法分别用来以指定字符为分隔符,从字符串左端和右端开始将其分割成多个字符串,并返回包含分隔结果的列表。
对于split()和rsplit()方法,如果不指定分隔符,则字符串中的任何空白字符(包括空格、换行符、制表符等)的连续出现都将被认为是分隔符,并且自动删除字符串两侧的空白字符,返回包含最终分隔结果的列表。
(3)join()
字符串的join()方法用来将列表中多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回新字符串。
(4)strip()、rstrip()、lstrip()
这几个方法分别用来删除两端、右端或左端连续的空白字符或指定字符。
(5)startswith()、endswith()
这两个方法用来判断字符串是否以指定字符串开始或结束,可以接收两个整数参数来限定字符串的检测范围。
另外,这两个方法还可以接收一个字符串元组作为参数来表示前缀或后缀。
二、列表 [:]
[1:3]代表截取[1,2]元素,即:[1:3)
(1)列表推导式:在逻辑上等价于一个循环语句
os.listdir()用来列出指定文件夹中所有文件和子文件夹清单,
字符串方法endswith()用来测试字符串是否以指定的字符串结束。
三、元组
元组是一个不可改变的列表。不可改变意味着它不能被修改。元组只是逗号分隔的对象序列(不带括号的列表)。为了增加代码的可读性,通常将元组放在一对圆括号中:
四、集合
1.集合(set)是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。 在Python中,创建集合有两种方式:一种是用一对大括号将多个用逗号分隔的数据括起来;另一类是使用set()函数,该函数可以将字符串、列表、元组等类型的数据转换成集合类型的数据。
2.创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
3.集合中不能有相同元素,如果在创建集合时有重复元素,Python会自动删除重复的元素。集合的这个特性非常有用,例如,要删除列表中大量重复的元素,可以先用set()函数将列表转换成集合,再用list()函数将集合转换成列表,操作效率非常高。
五、字典
字典(dictionary)是Python中另一个非常有用的内置数据类型。前面介绍的列表是有序的对象集合,字典是无序的对象集合。两者的区别在于:字典中的元素是通过键来存取的,而不是通过索引值存取的。
字典是一种映射类型,字典用“{}”标识,它是一个无序的键(key):值(value)对集合。在同一个字典中,键(key)必须是唯一的,但是值则不必唯一,值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。
字典对象提供了一个get()方法用来返回指定“键”对应的“值”,并且允许指定该键不存在时返回特定的“值”。
可以对字典对象进行迭代或者遍历,默认是遍历字典的“键”,如果需要遍历字典的元素必须使用字典对象的items()方法明确说明,如果需要遍历字典的“值”则必须使用字典对象的values()方法明确说明。
六、string库中
ascii_letters表示英文大小写字符,digits表示10个数字字符。
join(…)的作用是使用空字符把参数中的字符串连接起来成为一个长字符串。最后使用for循环遍历该长字符串中的每个字符,把每个已出现字符的次数加1,如果是第一次出现,则已出现次数为0。
choice()用于从多个元素中随机选择一个
七、函数
1.函数分内置函数、第三方模块函数和自定义函数。
内置函数是Python系统自带的函数,模块函数是NumPy等库中的函数。
Python中定义函数的语法如下:
def functionName(formalParameters):functionBody
函数通常使用三个单引号'''...'''来注释说明函数;函数体内容不可为空,可用pass来表示空语句。在函数调用时,函数名后面括号中的变量名称称为实际参数(简称实参)。
定义函数时需要注意以下两点:
(1)函数定义必须放在函数调用前,否则编译器会由于找不到该函数而报错。
(2)返回值不是必需的,如果没有return语句,则Python默认返回值None。
2.匿名函数
所谓匿名函数,是指不以def语句定义的没有名称的函数,它在使用时临时声明、立刻执行,其特点是执行效率高。
Python使用lambda来创建匿名函数,它是一个可以接收任意多个参数并且返回单个表达式值的函数,其语法格式为:
lambda arg1[,arg2,…,argn]:expression
2.1模块的导入和使用
随着程序的变大及代码的增多,为了更好地维护程序,一般会把代码进行分类,分别放在不同的文件中。公共类、函数都可以放在独立的文件中,这样其他多个程序都可以使用,而不必把这些公共的类、函数等在每个程序中复制一份,这样独立的文件就叫做模块。
标准库中有与时间相关的time、datetime模块,随机数的random模块,与操作系统交互的os模块,对Python解释器相关操作的sys模块,数学计算的math模块等几十个模块。
(1)标准库与扩展库中对象的导入与使用
Python标准库和扩展库中的对象必须先导入才能使用,导入方式如下。
- import 模块名 [as 别名]
使用时需要在对象之前加上模块名作为前缀,必须以“模块名.对象名”的形式进行访问。如果模块名字很长,可以为导入的模块设置一个别名,然后使用“别名.对象名”的方式来使用其中的对象。
例2.15 加载模块示例。
#程序文件ex2_15.py
import math #导入标准库math
import random #导入标准库random
import numpy.random as nr #导入numpy库中的random模块
a=math.gcd(12,21) #计算最大公约数,a=3
b=random.randint(0,2) #获得[0,2]区间上的随机整数
c=nr.randint(0, 2, (4, 3)) #获得[0,2)区间上的4×3随机整数矩阵
print(a); print(b); print(c) #输出a,b,c的值
- from 模块名 import 对象名 [as 别名]
仅导入明确指定的对象,并且可以为导入的对象起一个别名。这种导入方式可以减少查询次数,提高访问速度,同时也可以减少程序员需要输入的代码量,不需要使用模块名作为前缀。
例2.16 导入模块示例。
#程序文件ex2_16.py
from random import sample
from numpy.random import randint
a=sample(range(10), 5) #在[0,9]区间上选择不重复的5个整数
b=randint(0, 10, 5) #在[0,9]区间上生成5个随机整数
print(a); print(b)
from 模块名 import *(不推荐)
常用内置函数用法
内置函数不需要额外导入任何模块即可直接使用,具有非常快的运行速度,推荐优先使用。
使用下面的语句可以查看所有内置函数和内置对象。
dir(_builtins_)
使用help(函数名)可以查看某个函数的用法。
2.2排序
例2.19 sorted()使用示例。
#程序文件ex2_19.py
import numpy.random as nr
x1=list(range(9,21))
nr.shuffle(x1) #shuffle()用来随机打乱顺序
x2=sorted(x1) #按照从小到大排序
x3=sorted(x1,reverse=True) #按照从大到小排序
x4=sorted(x1, key=lambda item: len(str(item))) #以指定的规则排序
print(x1); print(x2); print(x3); print(x4)
2.3枚举
2.4map()函数
函数map(func, *iterables)把一个函数func依次映射到一个可迭代对象iterables的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是iterables中元素经过函数func处理后的结果。
2.5filter()函数
内置函数filter()将一个单参数函数作用到一个序列上,返回该序列中使得该函数取值为True的那些元素组成的filter对象,可以把filter对象转换为列表、元组、集合,也可以直接使用for循环遍历其中的元素。
2.6zip()函数
zip()函数用来把多个可迭代对象中对应位置上的元素压缩在一起,返回一个可迭代的zip对象,其中每个元素都是包含原来多个可迭代对象对应位置上元素的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个。
八、NumPy库
NumPy提供了两种基本的对象:
ndarray:存储单一数据类型的多维数组;
ufunc:能够对数组进行处理的函数。
在使用NumPy之前,首先必须导入该函数库,导入方式如下:
import numpy as np