7 字符串

# -*- coding: utf-8 -*-
__author__ = 'Bao'

var='Hello World'
var1=r'Hello\n World'

print(var[0])
print(var[2:5])
#字符串连接输出
print(var+" Zhang")
#字符串重复输出
print("Hello"*3)
print(var1)
print(r'Hello\n World')
#字符串格式化
print("%s is %d years old."%("Li",13))

# 三引号可以将复杂的字符串进行赋值。
var2='''Hello
Li 123
Wo
'''
print(var2)

# splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
print(var2.splitlines())

# f-string格式输出,以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去
name='ZhangSan'
print(f'Hello {name}')

str1='this is a book.'
#capitalize()字符串第一个字母修改为大写
print(str1.capitalize())

# center(width, fillchar) 指定宽度居中显示,fillchar为填充字符,默认为空格;
#如果宽度小于字符长度,则看不出效果
print(str1.center(60,'*'))

#count(str, beg= 0,end=len(string))
#返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
print(str1.count('i'))
print(str1.count('i',4))

#endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
print(str1.endswith('.'))
print(str1.endswith('!'))
print(str1.endswith('book.'))

#expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
print(str1.expandtabs())

# find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
print(str1.find('is'))
print(str1.find('are'))

#index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
print(str1.index('is'))
print(str1.index('are')) #如果不存在会报错 find()不存在会报-1

# isalnum()  如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
print('a'.isalnum())
print('a.'.isalnum())
print('a21b'.isalnum())
print('a21号'.isalnum())

# isalpha()  如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
print('a'.isalpha())
print('abc'.isalpha())
print('a.'.isalpha())
print('a21b'.isalpha())
print('a21号'.isalpha())

# isdigit() 如果字符串只包含数字则返回 True 否则返回 False..
print('a'.isdigit())
print('123'.isdigit())
print('a21'.isdigit())

# islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
print('a'.islower())
print('This is a book.'.islower())

# isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 Falseprint('a'.islower())
print('This.'.isnumeric())
print('123'.isnumeric())
print('123.2'.isnumeric())
print('13n.'.isnumeric())

# isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.
print(' '.isspace())
print('\t'.isspace())
print('\n'.isspace())
print('a b'.isspace())

# istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
print('this  is a book.'.istitle())
print('This  is a book.'.istitle())
print('This  Is A Book.'.istitle())

# isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
print('This'.isupper())
print('THIS'.isupper())

# join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
s1='*'
s2=''
seq=('B','a','o')
print(s1.join(seq))
print(s2.join(seq))

# len(string) 返回字符串长度
print(len('This'))

# ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
print("This".ljust(20,'*'))

# lower() 转换字符串中所有大写字符为小写.
print('This'.lower())

# maketrans()  translate() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
str1="This is a book, that is a car."
strOld='abc'
strNew='123'
strTrans=str.maketrans(strOld,strNew)
print(str1)
print(strTrans)
print(str1.translate(strTrans))

# max(str) 返回字符串 str 中最大的字母。
print(max('This is '))

# min(str) 返回字符串 str 中最小的字母。
print(min('This'))

# replace(old, new [, max]) 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
print('this is '.replace(" is"," are"))

# rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.
print('this is '.rfind('i'))

# rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.

# rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.

# rjust(width,[, fillchar])  返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

# rstrip() 删除字符串字符串末尾的空格.

# split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
print('Process finished with exit code 0'.split(' '))
print('Process finished with exit code 0'.split(' ',3))
str1='Process finished with exit code 0'.replace(' ','_')
print(str1)
print(str1.split('_'))

# startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
print(var2.startswith('H'))
print(var2.startswith('h'))
print(var2.startswith('Hello'))

# strip([chars]) 在字符串上执行 lstrip()和 rstrip()
print(' This is a book.  '.strip())

# swapcase() 将字符串中大写转换为小写,小写转换为大写
print(' This is a book.  '.swapcase())

# title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
print(' this is a book.  '.title())

# upper() 转换字符串中的小写字母为大写
print('this is a book.'.upper())

# zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
print("213".zfill(8))

# isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
print('21'.isdecimal())
print('21a'.isdecimal())

编码、解码

# -*- coding: utf-8 -*-
__author__ = 'Bao'

str1='this is a book.'
str2='你好,小明'
# 编码、解码,编码格式有:"utf-8"  "ascii"  "ISO-8859-1"  "utf-16" 'GBK'
# bytes.decode(encoding="utf-8", errors="strict")
# encode(encoding='UTF-8',errors='strict')
str1_u8=str1.encode("utf-8")
str1_a=str1.encode("ascii")
str1_i=str1.encode("ISO-8859-1")
str1_u16=str1.encode("utf-16")

str2_u8=str2.encode("utf-8")
#str2_a=str2.encode("ascii")  字符串存在中文就会报错
# str2_i=str2.encode("ISO-8859-1") 字符串存在中文会报错
str2_u16=str2.encode("utf-16")
str2_g=str2.encode("GBK")

print(str1)
print(str1_u8)
print(str1_a)
print(str1_i)
print(str1_u8)
print(len(str1))
print(len(str1_u8))
print(len(str1_a))
print(len(str1_i))
print(len(str1_u16))

print(str2)
print(str2_u8)
print(str2_u16)
print(str2_g)
print(len(str2))
print(len(str2_u8))
print(len(str2_u16))
print(len(str2_g))

print(str2_u8.decode("utf-8"))
转义字符	描述
\(在行尾时)	续行符
\\	反斜杠符号
\'	单引号
\"	双引号
\a	响铃
\b	退格(Backspace)
\e	转义
\000	空
\n	换行
\v	纵向制表符
\t	横向制表符
\r	回车
\f	换页
\oyy	八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy	十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行
\other	其它的字符以普通格式输出


操作符	描述	
+	字符串连接 
*	重复输出字符串 
[]	通过索引获取字符串中字符	
[ : ]	截取字符串中的一部分	
in	成员运算符 - 如果字符串中包含给定的字符返回 True	
not in	成员运算符 - 如果字符串中不包含给定的字符返回 True	
r/R	原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。	

    符号	描述
      %c	 格式化字符及其ASCII码
      %s	 格式化字符串
      %d	 格式化整数
      %u	 格式化无符号整型
      %o	 格式化无符号八进制数
      %x	 格式化无符号十六进制数
      %X	 格式化无符号十六进制数(大写)
      %f	 格式化浮点数字,可指定小数点后的精度
      %e	 用科学计数法格式化浮点数
      %E	 作用同%e,用科学计数法格式化浮点数
      %g	 %f和%e的简写
      %G	 %F 和 %E 的简写
      %p	 用十六进制数格式化变量的地址
	  

符号	功能
*	定义宽度或者小数点精度
-	用做左对齐
+	在正数前面显示加号( + )
<sp>	在正数前面显示空格
#	在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0	显示的数字前面填充'0'而不是默认的空格
%	'%%'输出一个单一的'%'
(var)	映射变量(字典参数)
m.n.	m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

你可能感兴趣的:(Python)