python字符串和序列

来源:互联网 发布:淘宝买港版note7怎么退 编辑:程序博客网 时间:2024/06/05 03:19

字符串

python字符串,列表,元组都是序列

str1 = "I Love Python"str1[:6] #字符串的分片,用法和列表,元组一样# 'I Love'str1[5]  #字符串的随机访问,用法和列表,元组一样# 'e'str1[:6] + '插入的字符串'+str1[6:]# 'I Love插入的字符串 Python'str1# 'I Love Python'str1 = str1[:6] + '插入的字符串'+str1[6:]str1# 'I Love插入的字符串 Python'

比较操作符,逻辑操作符,成员操作符(in, not in)的使用和列表,元组是一样的

字符串中常用的方法

str2 = "xiaoxie"str2.capitalize()  #将字符串的首字母变成大写# 'Xiaoxie'  str2 = "DAXIE"str2.casefold()    #将字符串的所有字母变成小写# 'daxie'str2.center(40)    #将字符串居中,左右各40个空格# '                 DAXIE                  ' str2.count('A')# 1str2.count('A',2)# 0str2.count('A',1,3) #统计字符串在str2中出现的次数,start和end表示范围# 1str2.endswith('E')  #判断字符串是否以指定的字符串结尾# Truestr3 = 'I\tLove\tPython'str3.expandtabs()   #将\t用空格替换# 'I       Love    Python'str3 = 'I\tLove\tPython'str3.find('L')# 2str3.find('Love')# 2str3.find('Love',7)# -1str3.find('Love',1,7)  #在str3中查找sub字符串,范围从start到end# 2

index(sub, start, end)用法和find一样,只是在找不到sub子串的时候抛出异常
isalnum():如果字符串中至少有一个字符且所有字符都是字母或数字则返回True,反之False
isalpha():如果字符串中至少有一个字符且所有字符都是字母则返回True,反之False
isdecimal():如果字符串只包含十进制数字则返回True,否则返回False
isdigit():如果字符串只包含数字则返回True,否则返回False

str4 = '小甲鱼'str4.islower() #如果字符串全是小写,返回True,否则返回False# Falsestr1 = '78475'str1.isnumeric()  #如果字符串只包含数字字符,返回True,否则返回False# True

isspace():如果字符串只包含空格,返回True,否则返回False
istitle():如果字符串是标题化(所有单词都是以大写开头,其余字母均小写),返回True,否则返回False
isupper():如果字符串全是大写,返回True,否则返回False

str = '小甲鱼'str.isupper()# False
str1 = "python"str1.join('12345') #以sub作为分割符分割str1# '1python2python3python4python5'str1.join("好的")# '好python的'str1.ljust(20)  #左对齐,并使用空格填充至长度为width的新字符串# 'python              '

lower():将字符串中的所有大写字母转换为小写
lstrip():去掉字符串左边的所有空格
rstrip():去掉字符串末尾的空格

str6 = 'i love fishc'str6.partition('ov') #找到sub,把字符串分成一个三元组(pre_sub,sub,ful_sub),如果找不到sub,就返回('原字符串',' ',' ')# ('i l', 'ov', 'e fishc')str6# 'i love fishc'str6.replace('fishc','fishC') # 替换,replace(old,new,count),如果count指定,则替换不超过count次# 'i love fishC'str6# 'i love fishc'

rfind(sub,start,end):类似find方法,从右边开始查找
rindex(sub,start,end):类似index方法,从右边开始查找
rjust(width):类似ljust(width)方法

str1 = 'Index'str1.rjust(20)'               Index'str1.rjust(3)'Index'

rpartition():类似partition()方法,从右边开始查找
rstrip():删除字符串末尾的空格

str6'i love fishc'str6.split()    #默认以空格为分割符['i', 'love', 'fishc']str6.split('i') #自动切片['', ' love f', 'shc']
str4 = 'I\nLove\nPython'str4# 'I\nLove\nPython'print(str4)# I# Love# Pythonstr4.splitlines() #以'\n'作为分割符,返回列表# ['I', 'Love', 'Python']str4.splitlines(2) #如果keepends指定,则返回前keepends行# ['I\n', 'Love\n', 'Python']

startswith(fix, start, end):类似endswith方法
strip(chars):删除字符串前面和后面的所有空格,chars可以定制删除的字符
swapcase():翻转字符串中的大小写
title():返回标题化(所有单词都是以大写开头,其余字母均小写)的字符串

str8 = 'aaaaaabaaaaaa'str.maketrans('a', 's')  #指定规则,用'a'替换's'# {97: 115}str8.translate(str.maketrans('a', 's')) #根据规则转换字符串# 'ssssssbssssss' 

upper():将字符串中的所有小写字母转换成为大写

str = 'str'str.zfill(6) #原字符串右对齐,返回长度为width左边用0填充的字符串# '000str'

字符串格式化

"{0} love {1}.{2}".format("I", "FishC", "com") #位置参数# 'I love FishC.com'"{a} love {b}.{c}".format(a = "I", b = "FishC", c = "com") #关键字参数# 'I love FishC.com'"{0} love {1}.{a}".format("I", "FishC", a = "com") #位置参数和关键字参数可以混合使用,但是位置参数必须在关键字参数之前# 'I love FishC.com'"{{0}}".format("不打印") #相当于转义# '{0}'"{0:.1f}{1}".format(27.658,"GB") #:号表示格式化符号的开始# '27.7GB'  

字符串格式化符号含义

格式化符号含义

'%c' % 97# 'a''%c %c %c' % (97, 98, 99) # 'a b c''%s' % 'I Love Fishc.com'# 'I Love Fishc.com''%d + %d = %d' % (4, 5, 4 + 5)# '4 + 5 = 9''%o' % 10     #将十进制的数格式化成八进制的数# '12''%x' % 10# 'a''%X' % 10     #将十进制的数格式化成16进制的数# 'A''%f' % 27.658  #格式化定点数,可以指定小数点后的精度,默认小数点后保留6# '27.658000''%e' % 27.658  #用科学计数法格式化定点数# '2.765800e+01''%E' % 27.658  #用科学计数法格式化定点数# '2.765800E+01''%g' % 27.658  # '27.658'

格式化操作符辅助指令

辅助指令

'%5.1f' % 27.658  #5表示占位符# ' 27.7''%.2e' % 27.658# '2.77e+01''%-10d' % 5   #-号表示左对齐# '5         ''%+d' % 5# '+5'        #+号表示在正数前面显示加号'%#o' % 10 #将十进制的数格式化成八进制的数,并在前面加上'0o'# '0o12''%#x' % 10 #将十进制的数格式化成16进制的数,并在前面加上'0x'# '0xa''%010d' % 5# '0000000005' #显示的数字前面填充0,取代空格'%-010d' % 5# '5         '

字符串转义字符含义

转义字符
‘\a’不能发出系统响铃声,打印一个圆点

列表,元组和字符串的共同点

  • 都可以通过索引得到每一个元素
  • 默认索引值都是从0开始
  • 都可以通过分片的方法取得一个范围内的元素集合
  • 有很多共同的操作符(重复操作符*,拼接操作符+,成员关系操作符in和not in)

序列

a = list()  #生成一个空列表a# []b = 'I love fishC.com'b = list(b) #把一个可迭代的b转换成为列表b# ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm']

tuple函数和list函数一样
str函数将一个对象转换成字符串

max(1, 2, 3, 4, 5)# 5b# ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm']max(b)# 'v'num = [1,5,45,56,-9,0]max(num)# 56min(num)# -9chars = '1234567890'min(chars)# '0'tuple1 = (1,2,3,4,5,6,7,8,9,0)max(tuple1)# 9

sum(iterable, start = 0)

tuple2 = (4.3,1.2,4.5,)sum(tuple2)# 10.0sum(tuple2, 8) #对tuple2求和再加上start# 18.0chars# '1234567890'sum(chars) #只能对数字类型求和Traceback (most recent call last):  File "<pyshell#94>", line 1, in <module>    sum(chars)TypeError: unsupported operand type(s) for +: 'int' and 'str'
num[1, 5, 45, 56, -9, 0]sorted(num) #排序[-9, 0, 1, 5, 45, 56]reversed(num) #返回一个可迭代的对象# <list_reverseiterator object at 0x000000EC3AA15198>list(reversed(num))# [0, -9, 56, 45, 5, 1]num# [1, 5, 45, 56, -9, 0]enumerate(num)  #返回一个枚举对象# <enumerate object at 0x000000EC3AA18A68>list(enumerate(num))# [(0, 1), (1, 5), (2, 45), (3, 56), (4, -9), (5, 0)]a = [1,2,3,4,5,5,6,7,8]b = [4,5,6,7,8]zip(a, b)  # <zip object at 0x000000EC3A76DCC8>list(zip(a, b))# [(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]
0 0