失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python Day5-字符串-操作-常用函数-遍历

Python Day5-字符串-操作-常用函数-遍历

时间:2022-05-13 03:43:49

相关推荐

Python Day5-字符串-操作-常用函数-遍历

1.字符串拼接

方法一: ’ '.join()方法

a = [‘a’,‘b’,‘c’,‘d’]

content =’’

content=’’.join(a)

print content

方法二:用替换占位符

a = [‘a’,‘b’,‘c’,‘d’]

content =’’

content=’%s%s%s%s’% tuple(a)

print content

方法三: =+ (效率低)

a=‘a’

b=‘b’

c=‘c’

d=‘d’

content =’’

content= a+b+c+d

print content

2.字符串截取

s = ‘ILovePython’

print s[0] #从左往右截取 结果:I

print s[-1] #从右往左截取 加‘-’号 结果:n

print s[1:5] #范围截取 从下标1截取到下标5 结果:Love

3.字符串替换

方法一:用replace方法替换

a=‘Hello World’

a=a.replace(‘World’,‘python’)

print a

方法二:用正则表达式替换

a=‘Hello World’

import re

strinfo = pile(‘World’)

b = strinfo.sub(‘python’,a)

print b

4.获取字符串的长度 len方法

a=‘Hello World’

print len(a)

5.分割字符串 split 方法

str = ‘a,b,c,d’

strlist = str.split(’,’)

6.内置函数操作

内置函数操作:len()

输入,输出:

s = input(“请输入字符串:”)

s1 = “%dgh%.2fjkl%s”

s2 = “23456”

print(s1,s2,2) #多输出

print(s1,s2,end=";")#换行

py2 print s1,s2

print(s1%(123,3.14,“456”))

print(round(3.1465926,2))

7.Python 切片

print(s[9])print(s[0:5])print(s[:5])print(s[1:])print(s[:])print(s[0:5:2])print(s[-1:-10:-1])print(s[8:-1:-1])

Python切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致。要创建一个已有列表的切片,通过指定切片的第一个列表元素和最后一个列表元素的索引号即可。

其基本语法如下:

list_slice = source_list[start: end :step]

其中,

source_list:被切片的源列表

list_slice:切片后生成的子序列列表

start:切片起始索引位置,省略则从头开始

end:切片结束索引位置,省略则切至列表末尾

step:切片步长,可选参数,表示每N个元素取一个,默认为1

*** 注意:

1、切片和range()函数一样,Python会自动到达所指定切片结束索引位置的前面一个元素停止。

2、负数索引返回离列表末尾相应间隔的元素。列表末尾元素的索引是从-1开始的。***

例如:

my_menu = ['fish','pork','pizza','carrot']print(my_menu[1:4:2]) #开始索引为1,结束索引为4,每2个取一个的第一个print(my_menu[:3]) #结束索引位置,其他默认print(my_menu[2:]) #开始索引位置,其他默认print(my_menu[-3:]) #负索引开始位置,其他默认输出结果:[‘pork’,‘carrot’][‘fish’,‘pork’,‘pizza’][‘pizza’,‘carrot’][‘pork’,‘pizza’,‘carrot’]

8.Python 自带函数

1.count()函数

描述:统计字符串里某个字符出现的次数。可以选择字符串索引的起始位置和结束位置。

语法:str.count(“char”, start,end) 或 str.count(“char”) -> int 返回整数

str —— 为要统计的字符(可以是单字符,也可以是多字符)。star —— 为索引字符串的起始位置,默认参数为0。end —— 为索引字符串的结束位置,默认参数为字符串长度即len(str)。

程序示例:

str = "i love python,i am learning python"print(str.count("i")) #star 和end 为默认参数print(str.count("i",2)) # star值为2,end值为默认参数print(str.count("i",2,5)) #star值为2,end值为5print(str.count("am")) #多字符统计程序运行结果:3201

2.isalpha()函数

描述:检测字符串是否只由字母组成。

语法:str.isalpha() -> bool 返回值为布尔类型(True,False)

字符串中至少有一个字符且所有字符都是字母则返回 True,否则返回 False。

# print(s1.isalpha())程序示例:str1 = "python" #全为字母str2 = " python" #存在空格str3 = "123" #全为数字str4 = "python666" #字母和数字的组合print(str1.isalpha())print(str2.isalpha())print(str3.isalpha())print(str4.isalpha())程序运行结果:TrueFalseFalseFalse

3.upper()函数

描述:将字符串中的所有小写字母转换为大写字母。
语法: str.upper() -> str 返回字符串

# print(s1.upper().)程序示例:str1 = "i love python" #全为小写字母str2 = "I Love Python" #所有单词首字母大写print(str1.upper())print(str2.upper())程序运行结果:I LOVE PYTHONI LOVE PYTHON

4.lower()函数

描述: 将字符串中的所有大写字母转换为小写字母。

注意: lower()函数和casefold()函数的区别:lower() 方法只对ASCII编码,即‘A-Z’有效,对于其它语言中把大写转换为小写的情况无效,只能用 casefold() 函数。

语法:str.lower() -> str 返回字符串

程序示例:# print(s1.lower())str1 = "I Love Python"str2 = "Groß - α" #德语 大写αprint(str1.casefold())print(str1.lower())print(str2.casefold())print(str2.lower())程序运行结果:i love pythoni love pythongross - αgroß - α

5.replace()函数:解决替换问题:

描述:返回字符串str的副本,所有old子字符串被替换为new字符串。

语法:str.replace(old, new, count) -> str 返回字符串str的副本

old —— 将被替换的子字符串。new —— 新子字符串,用于替换old子字符串。count —— 替换的次数,默认全部替换。

程序示例:# print(s.replace("天","hi",1))s = "i love python python "print(s.replace("o","w")) #默认字符串中的全部"o" 全部替换为"w"print(s.replace("o","w",2)) #只替换掉前两个子字符串 "o"print(s.replace("python","c++")) #子字符串可以是多个字符。print(s.replace("python","c++",1))程序运行结果:i lwve pythwn pythwn i lwve pythwn python i love c++ c++ i love c++ python

6.join()函数

描述: 将iterable变量的每一个元素后增加一个str字符串。

语法: str.join(iterable) -> str 返回字符串 即:返回一个以str作为分隔符,将iterable中的各元素合并连接成一个新的字符串。

str——分隔符。可以为空。iterable—— 要连接的变量 ,可以是 字符串,元组,字典,列表等。

# print(s.join(s1))程序示例:#对列表进行操作l = ["1","2","3"]print(" ".join(l)) #以空格为分隔符print(",".join(l)) #以逗号为分隔符#对字符串进行操作str = "python"print(" ".join(str)) #以空格为分隔符print(",".join(str)) #以逗号为分隔符#对字典进行操作d = {"a":1,"b":2,"c":3}print(" ".join(d)) #以空格为分隔符print(",".join(d)) #以逗号为分隔符#对元组进行操作s = ("1","2","3")print(" ".join(s)) #以空格为分隔符print(",".join(s)) #以逗号为分隔符程序运行结果:1 2 31,2,3p y t h o np,y,t,h,o,nb c ab,c,a1 2 31,2,3

7.strip()函数-解决字符串两端:

描述:从字符串str中去掉在其左右两边chars中列出的字符。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。

语法: str.strip(chars) -> str 返回一个新的字符串

chars —— 要去除的字符 默认为空格或换行符。

# print(s.strip(','))程序示例:str = "123456789321"print(str.strip("123")) #除去123,对于字符串str右边,1 在 "123"中去除,2在"123"中去除,同理3也去除,但9不在"123"中,去除结束str1 = "my name is ymyyyy"print(str1.strip("my")) #"my" 无空格,字母n前的空格不去掉。print(str1.strip("my ")) #"my "有空格,所以str1左边字母n前的空格被去掉。程序运行结果:456789name is name is

8. lstrip()函数

描述:从字符串str中去掉在其左边chars中列出的字符。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。

语法:str.lstrip(chars) -> str 返回一个新的字符串

chars —— 要去除的字符 默认为空格或换行符。

# print(s.lstrip(','))程序示例:str1 = "bacjabck123kluabc"print(str1.lstrip("abc")) #只去掉左边的"bac",左边第4个字符j不在"abc"中,去除结束str2 = "12578asdfgh12"print(str2.lstrip("12")) #只去掉字符串str2左边的 12程序运行结果:jabck123kluabc578asdfgh12

9.rstrip()函数

描述:从字符串str中去掉在其右边chars中列出的字符。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。。

语法:str.rstrip(chars) -> str 返回一个新的字符串

chars —— 要去除的字符 默认为空格或换行符。

# print(s.rstrip(','))程序示例:str1 = "abcjabck123kluabcca"print(str1.rstrip("abc")) #只去掉右边的"abcca",右边第6个字符u不在"abc"中,去除结束str2 = "12asdfgh11112"print(str2.rstrip("12")) #只去掉字符串str2右边的 11112程序运行结果:abcjabck123klu12asdfgh

10.split()函数

描述:拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表。

语法: str.split(sep=None, maxsplit=-1) -> list of strings 返回 字符串列表 或str.split(sep=None, maxsplit=-1)[n]

sep —— 分隔符,默认为空格,但不能为空即(")。maxsplit —— 最大分割参数,默认参数为-1。[n] —— 返回列表中下标为n的元素。列表索引的用法。

# print(s.split(','))程序示例:str1 = "i love python"str2 = ""str3 = "script<i love python>script"str4 = "i \n love \n python"print(str1.split()) #默认空格分割。print(str2.split("."))#以"."为分隔符,maxsplit默认为-1print(str2.split(".",-1)) #maxsplit为-1print(str2.split(".",1)) #以"."为分隔符,分割一次。print(str2.split(".")[1]) #分割后,输出列表中下标为1的元素print(str3.split("<")[1].split(">")[0])print(str4.split("\n")) #可用于去掉字符串中的"\n" "\t"等程序运行结果:['i', 'love', 'python']['https://www', 'baidu', 'com']['https://www', 'baidu', 'com']['https://www', '']baidui love python['i ', ' love ', ' python']

11.encode()函数-解决编码问题:

描述:以指定的编码格式编码字符串,默认编码为 ‘utf-8’。

注:在python中encode和decode分别指编码和解码

语法:str.encode(encoding=‘utf-8’, errors=‘strict’) -> bytes (获得bytes类型对象)

encoding 参数可选,即要使用的编码,默认编码为 ‘utf-8’。字符串编码常用类型有:utf-8,gb2312,cp936,gbk等。errors 参数可选,设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeEncodeError。 其它可能值有 ‘ignore’, ‘replace’, 'xmlcharrefreplace’以及通过 codecs.register_error() 注册其它的值。

# print(s.encode("utf-8"))程序示例:str1 = "我爱祖国"str2 = "I love my country"print("utf8编码:",str1.encode(encoding="utf8",errors="strict")) #等价于print("utf8编码:",str1.encode("utf8"))print("utf8编码:",str2.encode(encoding="utf8",errors="strict"))print("gb2312编码:",str1.encode(encoding="gb2312",errors="strict"))#以gb2312编码格式对str1进行编码,获得bytes类型对象的strprint("gb2312编码:",str2.encode(encoding="gb2312",errors="strict"))print("cp936编码:",str1.encode(encoding="cp936",errors="strict"))print("cp936编码:",str2.encode(encoding="cp936",errors="strict"))print("gbk编码:",str1.encode(encoding="gbk",errors="strict"))print("gbk编码:",str2.encode(encoding="gbk",errors="strict"))程序运行结果:utf8编码: b'\xe6\x88\x91\xe7\x88\xb1\xe7\xa5\x96\xe5\x9b\xbd'utf8编码: b'I love my country'gb2312编码: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'gb2312编码: b'I love my country'cp936编码: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'cp936编码: b'I love my country'gbk编码: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'gbk编码: b'I love my country'

12.index()函数

描述:查找字符串中第一次出现的子字符串的位置,可以规定字符串的索引查找范围[star,end)。若无则会报错。

注:index()函数和find()函数类似,但index()函数没有找到子字符串会报错。

语法:str.index(sub, start, end) -> int 返回整数

sub —— 查找的子字符串。start —— 索引的起始位置,默认为0。end —— 索引的结束位置,默认为字符串的长度。[star,end)

# print(s.index("天"))程序示例:str = "i love python"print(str.index("o")) #默认索引整个字符串print(str.index("o",4)) #索引 ve pythonprint(str.index("o",4,12)) #索引 ve pythoprint(str.index("love")) #索引多个字符print(str.index("k")) #索引字符串不存在,报错程序运行结果:311112---------------------------------------------------------------------------ValueError Traceback (most recent call last)<ipython-input-90-a880e13b1574> in <module>()4 print(str.index("o",4,12)) #索引 ve pytho5 print(str.index("love")) #索引多个字符----> 6 print(str.index("k"))ValueError: substring not found

13. find()函数-解决查找指定字符(子字符串)位置问题:

描述:查找字符串中指定的子字符串sub第一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。

语法:str.find(sub,start,end) -> int 返回整数

sum —要索引的子字符串。start —索引的起始位置。默认值为0。end —索引的结束位置。默认值为字符串长度len(str)。[start,end) 不包括end。

# print(s.find("真好"))程序示例:str = "i love python"print(str.find("o")) #索引子字符串"o"print(str.find("0",4))#索引起始位置为4 索引范围为:ve pythonprint(str.find("o",4,12))#索引起始位置为4,结束位置为12 索引范围为:ve pythoprint(str.find(""))print(str.find(" "))#返回第一个空格出现的位置。print(str.find("k")) #索引子字符串"k",不存在,返回-1程序运行结果:3-11101-1

14. endswith()函数-解决判断问题(返回bool类型)

描述:判断字符串是否以指定字符或子字符串结尾。

语法:str.endswith(“suffix”, start, end) 或 str[start,end].endswith(“suffix”) 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。

—> bool 返回值为布尔类型(True,False)

suffix — 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略,常用于判断文件类型)。start —索引字符串的起始位置。end — 索引字符串的结束位置。str.endswith(suffix) star默认为0,end默认为字符串的长度len(str)

注意:空字符的情况。返回值通常为True

# print(s.endswith(".py"))程序示例:str = "i love python"print("1:",str.endswith("n")) print("2:",str.endswith("python"))print("3:",str.endswith("n",0,6))# 索引 i love 是否以“n”结尾。print("4:",str.endswith("")) #空字符print("5:",str[0:6].endswith("n")) # 只索引 i loveprint("6:",str[0:6].endswith("e"))print("7:",str[0:6].endswith(""))print("8:",str.endswith(("n","z")))#遍历元组的元素,存在即返回True,否者返回Falseprint("9:",str.endswith(("k","m")))#元组案例file = "python.txt"if file.endswith("txt"):print("该文件是文本文件")elif file.endswith(("AVI","WMV","RM")):print("该文件为视频文件")else:print("文件格式未知")程序运行结果:1: True2: True3: False4: True5: False6: True7: True8: True9: False该文件是文本文件

15.startswith()函数

描述:判断字符串是否以指定字符或子字符串开头。

注意:空字符的情况。返回值通常也为True

语法:str.endswith(“suffix”, start, end) 或str[start,end].endswith(“suffix”) 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。

—> bool 返回值为布尔类型(True,False)

suffix — 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略)。start —索引字符串的起始位置。end — 索引字符串的结束位置。str.endswith(suffix) star默认为0,end默认为字符串的长度减一(len(str)-1)。

# print(s.startswith(",",1,6))程序示例:str = "hello,i love python"print("1:",str.startswith("h"))print("2:",str.startswith("l",2,10))# 索引 llo,i lo 是否以“n”结尾。print("3:",str.startswith("")) #空字符print("4:",str[0:6].startswith("h")) # 只索引 hello,print("5:",str[0:6].startswith("e"))print("6:",str[0:6].startswith(""))print("7:",str.startswith(("h","z")))#遍历元组的元素,存在即返回True,否者返回Falseprint("8:",str.startswith(("k","m")))程序运行结果:1: True2: True3: True4: True5: False6: True7: True8: False

16. isupper()函数

描述:检测字符串中的字母是否全由大写字母组成。(字符串中可包含非字母字符)。

语法:str.isupper() -> bool 返回值为布尔类型(True,False)

字符串中包含至少一个区分大小写的字符,且所有这些区分大小写的字符都是大写,则返回 True,否则返回 False。

# print(s1.isupper())程序示例:str1 = "I LOVE PYTHON" #全为大写字母str2 = "i LOVE PYTHON" #存在小写字母str3 = "我爱PYTHON" #存在非字母的字符print(str1.isupper())print(str2.isupper())print(str3.isupper())程序运行结果:TrueFalseTrue

17. islower()函数

描述:检测字符串中的字母是否全由小写字母组成。(字符串中可包含非字母字符)

语法:str.islower() -> bool 返回值为布尔类型(True,False)

字符串中包含至少一个区分大小写的字符,且所有这些区分大小写的字符都是小写,则返回 True,否则返回 False。

# print(s1.islower())程序示例:str1 = "i love python" #字符串中的字母全为小写str2 = "我爱python!" #字符串中的字母全为小写,也存在非字母的字符str3 = "I love python" #字符串中有大写字符print(str1.islower())print(str2.islower())print(str3.islower())程序运行结果:TrueTrueFalse

18. isdigit()函数

描述:检测字符串是否只由数字组成.

注:能判断“①”,不能判断中文数字。但 isnumeric() 函数可以。

语法: str.isdigit() -> bool 返回值为布尔类型(True,False)

字符串中至少有一个字符且所有字符都是数字则返回 True,否则返回 False。

# print(s2.isdigit())程序示例:str1 = "python" #全为字母str2 = " python" #存在空格str3 = "123" #全为数字str4 = "python666" #字母和数字的组合str5 = "一二三四五六七" #中文数字输出Falsestr6 = "①" print(str1.isdigit())print(str2.isdigit())print(str3.isdigit())print(str4.isdigit())print(str5.isdigit())print(str6.isdigit())程序运行结果:FalseFalseTrueFalseFalseTrue

19.isalnum()函数

语法:str.isalnum() -> bool 返回值为布尔类型(True,False)

str中至少有一个字符且所有字符都是字母或数字则返回 True,否则返回 False

# print(s1.isalnum())程序示例:str1 = "i love python 666" #有空格,不全是字母或数字str2 = "python" #全为字母str3 = "123" #全为数字str4 = "python666" #字母和数字的组合print(str1.isalnum())print(str2.isalnum())print(str3.isalnum())print(str4.isalnum())程序运行结果:FalseTrueTrueTrue

20. ljust()函数

描述:返回一个原字符串左对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

语法: str.ljust(width, fillchar) -> str 返回一个新的字符串

width —— 指定字符串的输出长度。fillchar—— 将要填充的单字符,默认为空格。

# print(s.ljust(15,"*"))程序示例:str = "python"print(str.ljust(30,"*")) #指定宽度为30,填充字符为*print(str.ljust(30)) #指定宽度为30,填充字符默认为空格print(str.ljust(30),"1") #对比程序运行结果:python************************python python

21. rjust()函数

描述:返回一个原字符串右对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法: str.ljust(width, fillchar) -> str 返回一个新的字符串

width —— 指定字符串的输出长度。fillchar—— 将要填充的单字符,默认为空格。

# print(s.rjust(15,"*"))程序示例:str = "python"print(str.rjust(30,"*")) #指定宽度为30,填充字符为*print(str.rjust(30)) #指定宽度为30,填充字符默认为空格print("1",str.rjust(30)) #对比程序运行结果:************************pythonpython1python

22.center()函数-解决字符串填充问题:

描述: 返回一个长度为width,两边用fillchar(单字符)填充的字符串,即字符串str居中,两边用fillchar填充。若字符串的长度大于width,则直接返回字符串str。

语法:str.center(width , “fillchar”) -> str 返回字符串 注意:引号不可省

width —— 指定字符串长度。fillchar —— 要填充的单字符,默认为空格。

# print(s.center(15,"*"))程序示例:str = "i love python"print(str.center(20,"*")) #指定字符串长度为20 用单字符"*"填充print(str.center(1,"*")) #指定字符串长度为1,小于原字符串的长度。print(str.center(20,"8"))print(str.center(20)) #fillchar 默认为空格程序运行结果:***i love python****i love python888i love python8888i love python

23.python 列表的遍历,列表解析、切片等基础知识

遍历列表

for i in range(0,len(s)):print(s[i])for i in s:print(i)

l=[1,3,4,5,6,7,8,9]for i in l:print(i) #循环打印列表中的每个元素

range方法的使用

range(i,j)方法 从i 开始 到j结束 ,不包括j for i in range(1,5) :print(i) # 1,2,3,4 range(i,j,step) 冲i开始,每次按照step增加步长,到j结束,不包括jfor i in range(1,10,2): l.append(i) # 1,3,5,7,9

列表解析:

l=[x**2 for x in range(1,5)] 遍历每个元素,并平方l=[1, 4, 9, 16]l=[x**3 for x in range(1,10,2)] l=[1, 8, 27, 64, 125, 216, 343, 512, 729]生成一个100以内的奇数l=[x for x in range(1,100) if x%2==1]函数 sum() min() max()的使用sum(l) 求l 列表的和max(l) 求l列表中最大值min(l) 求l列表中最小值

切片:

arr=[1,2,3,4,5,6,7,8,9]print(arr[0:4]) #取前面4个元素 1 2 3 4print(arr[1:4]) #取第2 到4个元素 2 3 4 print(arr[:4]) #取前面4个元素 1 2 3 4 print(arr[2:]) #从第3个开始,取到末尾 3 4 5 6 7 8 9print(arr[-3:]) #从到处第3个开始,取到末尾

如果觉得《Python Day5-字符串-操作-常用函数-遍历》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。