栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据方向学习系列 2、Python基础——字符串函数

大数据方向学习系列 2、Python基础——字符串函数

文章目录

一、字符串的访问

1.1 使用切片1.2 内建函数

1.2.1 find()1.2.2 index()1.2.3 count()1.2.4 replace1.2.5 split1.2.6 capitalize1.2.7 title1.2.8 startswithendswith1.2.9 upperlower1.2.10 ljustrjustcenter1.2.11 lstriprstripstrip 二、函数

1.不定长参数2.global和nonlocal关键字

2.1 global2.2 nonlocal 3.匿名函数4.高级函数

4.1 闭包4.2 装饰器4.3 多个装饰器4.4 装饰器对有参数函数装饰4.5 装饰器对有返回值函数装饰4.6 带有参数的装饰器4.7 map函数4.8 filter函数4.8 reduce函数


一、字符串的访问 1.1 使用切片

[起始:结束:步长] 左闭右开

name = "abcdefg"
name[0:3:1]
>'abc'
>name[1:-1]
>'bcdef'
>name[::-2] # 从后往前数间隔两个数
>'geca'
1.2 内建函数 1.2.1 find()

str.find(sub,start,end)
sub: 检索的字符串
start:开始索引,默认为0
end:结束索引,默认为字符串的长度
没有的话就返回-1,有的话返回首字母下标,备注(字符串第一个下标是0)

例如:查找“ithima”是否再mystr中

mystr = "hello world itheima and itheimaApp"
mystr.find("itheima")

1.2.2 index()

str,index(sub,start,end)
index和find功能差不多,但是如果没找到的话,index会报错,所以咱们一般用find去查找

1.2.3 count()

统计字符串中某个字符串出现的次数

str.count(sub,start,end)

mystr = "hello world itheima and itheimaApp"
mystr.count("itheima")

1.2.4 replace

str,replace(old,new,count)
count: 可选字符串,替换不超过count次

1.2.5 split

对字符串进行切片,返回分割后的字符串列表

str.split(sep=None,maxsplit=-1)
sep:分隔符,默认为所有空字符串,包括空格、换行、制表符
maxsplit:分割次数

1.2.6 capitalize

将字符串第一个字母变成大写,其他字母变成小写,返回一个字母大写的字符串

str.capitalize

1.2.7 title

返回标题化的字符串,所有单词都是大写开始,其余字母均为小写

1.2.8 startswithendswith

用于检查字符串是否是以指定子字符串开头,如果是返回True,否则False。
用于检查字符串是否是以指定子字符串结尾,如果是返回True,否则False。

str.startswith(prefix,start,end)
prefix: 检查的字符串

1.2.9 upperlower

将字符串中所有小写转化为大写

1.2.10 ljustrjustcenter

返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度,则返回原字符串。

str.ljust(width,fillchar)
width:指定字符的长度
fillchar:填充字符,默认为空格

1.2.11 lstriprstripstrip

用于裁剪字符串左边的空格或者指定字符串,返回的是一个新字符串。

str,lstrip(chars)
chars:截取的字符串

二、函数 1.不定长参数

如果传入多出的参数没有参数名的话就是用元组存储,有参数名的话就是用字典存储:

2.global和nonlocal关键字 2.1 global

global关键字用来再函数或其他局部作用域中使用全局变量。

2.2 nonlocal

这个关键字是在python3中新加的,使用该关键字可以在一个嵌套的函数中修改嵌套作用域中的变量。


3.匿名函数

声明匿名函数需要使用lambda关键字

lambda [arg1,arg2,arg3,…,]: expression
arg1…表示的是函数的参数
expression表示的是函数的表达式

下面举例lambda的使用示例:


注意:
lambda不能有if或for这样的语句
lambda返回是一个对象或者表达式,不能将结果给一个变量。

4.高级函数 4.1 闭包

如果在一个内部函数中对外部函数作用域的变量进行了引用,那么内部函数就称作为闭包

存在嵌套关系的函数
嵌套的内部函数引用了外部函数的变量
嵌套的外部函数会将内部函数名作为返回值返回,


从函数的生命周期上来讲,在outer函数运行结束后,count变量应该被销毁,运行inner函数应该会报错,但是由于闭包会记住外层函数的作用域所以程序不会释放count变量。

4.2 装饰器

装饰器的本质是一个python函数,可以在不改动其他函数的前提下,对函数的功能进行扩充。通常情况下,用于下列场景:

    引入日志函数执行时间统计执行函数前预备处理执行函数后清理功能权限校验缓存

举个例子:

def foo1():
	print("f1")

现在有个需求,希望可以输出函数的执行日志,这时有人会这么实现:

def foo1():
	print("f1")
	print("f1 is running")

但是,如果函数foo2(),foo3()都有类似的需求,这样的做法会出现大量重复的代码,为了减少重复的代码,我们可以创建新的函数专门记录函数执行日志,谁需要记录执行日志,就把谁作为参数传递。但是这样的话有个问题,破坏了原来代码的逻辑结构,如果要求已经实现的函数,不能修改,只能扩展,南无是不允许在foo1内部进行修改的。
装饰器可以满足上述需求。

def w1(func):
	print("正在装饰")
	def inner():
		print("正在验证权限")
		func()
	return inner
@w1
def foo1():
	print("f1")
foo1()


程序执行过程:

    先执行@w1,w1相当于foo1=w1(foo1)执行print(“正在装饰”)执行inner函数,func()指向fool(),将inner函数的引用返回给w1(foo1),作为w1的返回值将w1(foo1)的返回值赋给foo1,此时foo1指向inner函数
4.3 多个装饰器

多个装饰器,装饰一个函数时,执行顺序是从下向上

4.4 装饰器对有参数函数装饰

4.5 装饰器对有返回值函数装饰

4.6 带有参数的装饰器

4.7 map函数

map函数会根据提供的函数对指定的序列做映射
定义如下:

map(function,iterable…)
function:函数名
iterable:可以是序列、支持迭代的容器或是迭代器。

当使用map函数的时候,iterable中的每个元素都会调用function函数,所有元素调用function函数返回的结果会保存到一迭代器对象中。
如果希望将迭代器转化为列表,可以通过list函数进行转化。此外还可以用for循环进行遍历迭代器对象,从而获取内部的元素。

func = lambda x : x+2
result = map(func,[1,2,3,4,5])
list(result)
>>[3, 4, 5, 6, 7]

注意:
python3中map第一个参数传入None,相当于zip函数,并且无法处理两个序列长度不一致的迭代对象,否则会报错。

4.8 filter函数

会对指定的序列执行过滤操作

filter(funciton,iterable)
function只能接收一个参数,并且该函数的返回值是布尔值。

可以将结果返回为True的值构成一个列表输出

4.8 reduce函数

reduce函数会对参数迭代器中的元素进行累积
map函数传入两个参数的时候,需要两个列表,否则会报错


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752391.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号