本节列举和说明下基本类型常用的内置方法,这些方法几乎可以支撑我们日常的问题处理和代码编写;遇到问题时,我们应该首先看一看对象有没有内置的方法是可以解决问题和实现目标的,这些内置的方法通常都会比我们自己写的方法有更快的运行速度和更合理的实现过程,当然也不需要担心存在缺陷的情况;如果没有合适的内置方法,还可以在python标准库中查找,或者下载第三方的库引入到我们的代码内。python最强大的地方莫过于有许许多多强大的第三方库,这些代码都是由他人编写的开源库,可以为我所用,快速的解决问题。模块的引入常见的开源库我们将在下一节中介绍。
【随机数的操作】
随机数的使用场景有很多,比如抽签、摇奖或是用于生成唯一的序列号。在python中实现随机数的生成主要是两个库,一是使用python自带的random库,二是引入第三方numpy库,numpy在多维数据处理时会频繁用到,是经典的python三方库之一。在这里我们就只介绍random库中常用的方法。
(1)参生n--m范围内的一个随机数: random.randint(n, m)
(2)产生0到1之间的浮点数: random.random()
(3)产生n---m之间的浮点数: random.uniform(n, m)
(4)产生从n---m间隔为k的整数: random.randrange(n, m, k)
(5)从序列中随机选取一个元素: random.choice(list)
(6)对序列进行一次打乱操作: random.shuffle(list)
以上的用法我们一次举例,首先使用import引入random库:
import
由于是随机数,那么当然每次运行的结果都不尽相同,小伙伴们可根据方法的描述,判断自己的代码有没有正确的执行。
【常用字符串内置方法】
字符串应该算是我们以后最常用到的类型之一了,它的内置方法也是比较齐全的,几乎涵盖了我们常见的场景,以下列举作者在日常项目中最经常使用到的一些方法。在阅读这些方法之前,得先明确方法的定义格式,参数后跟赋值的,是指传入参数需要指定相应的值;用中括号括起来的是指这个参数是一个可选择的参数;个别参数如果不填写是有默认值的,在方法的解释中也会有相应的说明。
(1)len(s):返回对象(字符、列表、元组等)长度或项目个数;
(2)count(sub, start= 0,end=len(string)):用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置;
(3)find(str, beg=0, end=len(string)):检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置;如果不包含索引值,返回-1;
(4)rfind(str, beg=0, end=len(string)):返回字符串最后一次出现的位置,如果没有匹配项则返回-1;
(5)index(str, beg=0, end=len(string)):检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常;
(6)rindex(str, beg=0 end=len(string)):返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间
(7)startswith(substr, beg=0, end=len(string)):用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False;如果参数 beg 和 end 指定值,则在指定范围内检查;
(8)endswith(suffix[, start[, end]]):用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False;可选参数 “start” 与 “end” 为检索字符串的开始与结束位置;
(9)strip([chars]):用于移除字符串头尾指定的字符(默认为空格)或字符序列;
(10)lstrip([chars]):删除 string 字符串开头的指定字符(默认为空格);
(11)rstrip([chars]):删除 string 字符串末尾的指定字符(默认为空格);
(12)replace(old, new[, max]):把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次;
(13)split(str="", num=string.count(str)):通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串;
(14)join(sequence):用于将序列中的元素以指定的字符连接生成一个新的字符串;
(15)splitlines([keepends]):按照行(’r’, ‘rn’, n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符;
str1 = "chinese"
# (1)len(s)
print(len(str1))
# (2)count(sub, start= 0,end=len(string))
print(str1.count('e'))
# (3)find(str, beg=0, end=len(string))
print(str1.find('cn'))
# (4)rfind(str, beg=0 end=len(string))
print(str1.find('c'))
# (5)index(str, beg=0, end=len(string))
print(str1.index('e'))
# (6)rindex(str, beg=0 end=len(string))
print(str1.rindex('n'))
# (7)startswith(substr, beg=0,end=len(string))
print(str1.startswith('ch'))
# (8)endswith(suffix[, start[, end]])
print(str1.endswith('en', 2, len(str1) -2))
# (9)strip([chars])
str2= " I'm a chinese ! "
print(str2.strip())
# (10)lstrip([chars])
print(str2.lstrip())
# (11)rstrip([chars])
print(str2.rstrip())
# (12)replace(old, new[, max])
print(str1.replace('e', '!'))
print(str1.replace('e', '#', 1))
# (13)split(str="", num=string.count(str))
print(str2.split())
# (14)join(sequence)
str3 = ['a', 'b', 'c', 'd', 'e', 'f']
str4 = "".join(str3)
print(str4)
# (15)splitlines([keepends])
print(str4.splitlines())
print(type(str4))
【常用列表内置方法】
列表使用的场景是多种多样的,这得益于列表的内置方法的支持。列表的基本性质和增删改的操作小伙伴们可以回顾之前的章节,这里举例几个常用的内置方法。
(1)index(v [, begin[, end]]):返回对应元素的索引下标,begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误;
(2)insert(index, obj):将某个元素插放到列表中指定的位置;
(3)count(x):返回列表中元素的个数;
(4)remove(x):从列表中删除第一次出现在列表中的值;
(5)copy():复制此列表(只复制一层,不会复制深层对象);
(6)append(x):向列表的最后追加一个元素;
(7)extend(lst):向列表追加另一个列表;
(8)clear():清空列表,等同于 L[:] = [];
(9)sort(reverse=False):将列表中的元素进行排序,默认顺序按值的小到大的顺序排列,注意此方法只能使用于列表中都是相同类型元素时;
(10)reverse():列表的反转,用来改变原列表的先后顺序;
(11)pop([index]):删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系。
list1 = [1, 2, 3, 'a', 'b', 'c']
# (1)index(v [, begin[, end]]):返回对应元素的索引下标,begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误
print(list1.index(3))
# (2)insert(index, obj):将某个元素插放到列表中指定的位置
list1.insert(len(list1) - 1, 'z')
print(list1)
# (3)count(x):返回列表中元素的个数
print(list1.count('b'))
# (4)remove(x):从列表中删除第一次出现在列表中的值
list1.remove(1)
print(list1)
# (5)copy():复制此列表(只复制一层,不会复制深层对象)
list2 = list1.copy()
list2.append('x')
print(list1)
print(list2)
# (6)append(x):向列表的最后追加一个元素
list1.append('y')
print(list1)
# (7)extend(lst):向列表追加另一个列表
list1.extend(list2)
print(list1)
print(list2)
# (8)clear():清空列表,等同于 L[:] = []
list2.clear()
# (9)sort(reverse=False):将列表中的元素进行排序,默认顺序按值的小到大的顺序排列,注意此方法只能使用于列表中都是相同类型元素时。
# (10)reverse():列表的反转,用来改变原列表的先后顺序
list1.reverse()
print(list1)
# (11)pop([index]):删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系
list1.pop()
print(list1)
list1.pop(0)
print(list1)
【常用字典内置方法】
字典最重要的特征就是键值对的访问,所有的元素访问都得通过键来定位,抓住这一点,它的用法就很明确了。
(1)copy():返回一个字典的浅复制;
(2)clear():删除字典内所有元素;
(3)get(key, default=None):返回指定键的值,如果值不在字典中返回default值;
(4)key in dict:如果键在字典dict里返回true,否则返回false;
(5)items():以列表返回可遍历的(键, 值) 元组数组;
(6)keys():返回一个迭代器,可以使用 list() 来转换为列表;
(7)setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default;
(8)update(dict2):把字典dict2的键/值对更新到dict里;
(9)values():返回一个迭代器,可以使用 list() 来转换为列表;
(10)pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值;
(11)popitem():随机返回并删除字典中的最后一对键和值。
dict1
本节的内容可能略显枯燥,简单的举例也许并不能很好的说明这些基本类型内置方法的作用,但在未来编程的日子中,这些方法会常伴左右,当真正出现适合它们的场景时,你会发现他们是如此的契合;小伙伴们也不需要对这些方法的名字死记硬背,一是可以在使用的时候查一查,二是这些内置方法的名字和它们的作用是高度相关的,知名达意,这也给了我们一些启示,未来在编写自己的方法模块时,也应该给我们的变量、方法、类取有意义的名字,总是abc的,只有自己才知道是何意义,但我们的代码,应该面向更多的问题,面向更多的人,用你的代码去帮助别人解决问题,难道不好吗?
【python入门系列】
杨地瓜:【Python基础(九)】函数基本语法zhuanlan.zhihu.com【信息系统项目管理师考试分享】
杨地瓜:【项目管理(十一)】软考-信息系统项目管理师-论文总结(II)zhuanlan.zhihu.com