学习备忘录 2019-12-07
字符串是以单引号或双引号括起来的任意文本
创建字符串
str1 = "shaoge is a good man!"
字符串运算
字符串连接
str6 = "shaoge is a"
str7 = "good man"
str8 = str7 +str6
输出重复字符串
str9 = "good"
str10 = str9 * 3 将str9 输出3遍
访问字符串中的某一个字符
通过索引下标查找字符,索引从0开始
字符串名[下标]
str11= "shaoge is a good man!"
str11[1] = ‘a‘ 字符串不可变 会报错
截取字符串中的一部分
str13 = "shaoge is a good man!"
str15 = str13[6:15] //从给定下标初开始截取到给定 下标之前
str16 = str13[0:5] //从头截取到定下标之前
str17 = str13[16:] //从给定下标处开始截取到结尾
print("str15=",str15)
print("good" in str13)// 判断good是否属于str13
格式化输出
num = 10
str19 = "shaoge is a nice man!"
f= 10.1234
%d整数 %s字符 %f小数 占位符 \n换行符
print("num = %d,str19=%s,f = %.3f" % (num,str19,f)) .3f精确到小数点后3位,会四舍五入
转义字符 \
将一些字符转换成有特殊含义的字符
\t 制表符(四个空格)
如果字符中有好多字符串都需要转义。就需要加入好多\,为了简化,python允许用r表示内部的字符串默认不转义
字符串处理函数
eval(str) 返回的是整数类型
功能:将字符串str当成有效的表达式来求值并返回计算结果
len(str) 返回字符串str的长度(字符个数)
str.lower() 转换字符串str中大写字母为小写字母, 不会改变str里面的字符,会重新生成一个
str.upper() 转换字符串str中小写字母为大写字母, 不会改变str里面的字符,会重新生成一个
str.swapcase() 转换字符串str中小写字母为大写字母,大写字母为小写字母
str.capitalize() 将str字符串首字母大写,其他小写
str.title() 将str字符串每个单词的首字母大写,其余小写
str.center(width,fillchar)
指定width(宽度),填充fillchar(字符类型)
如果字符串小于width,字符串两边就用fillchar来填充
返回一个指定宽度的居中字符串,fillchar为填充的字符串,默认为空格填充
str.ljust(width,fillchar)
返回一个指定宽度的左对齐字符串,fillchar为填充字符,默认为空格填充
str.rjust(width,fillchar)
返回一个指定宽度的右对齐字符串,fillchar为填充字符,默认为空格填充
str.zfill(width)
返回一个长度为width的字符串,原字符串右对齐,前面补0
str.count(str1,start,end)
返回str字符串中str1出现的次数
可以指定一个范围,start,end可写可不写, 默认是从头到尾
str.find(str1,start,end)
从左向右检测str字符串是否包含在字符串str1中,可以指定范围
不写start,end 默认是从头到尾
得到的是第一次出现的开始下标,没有返回-1
str.rfind(str1,start,end)
从右向左检测str字符串是否包含在字符串str1中,可以指定范围
不写start,end 默认是从头到尾
得到的是第一次出现的开始下标,没有返回-1
str.index(str1,start,end)
跟find()方法一样,只不过如果str1不存在的时候会报一个异常
str.rindex(str1,start,end)
跟rfind()方法一样,只不过如果str1不存在的时候会报一个异常
str.lstrip(str1)
截掉字符串左侧指定的字符,默认为空格
str.rstrip(str1)
截掉字符串右侧指定的字符,默认为空格
str.strip(str1)
截掉字符串左右两侧指定的字符,默认为空格
str.split(str="",num,)
以str为分隔符截取字符串 如果指定num,则仅截取num个字符串,不写num,默认为字符串的长度
str38 = "sunck ** * *is a * * * ** good man
str38.split("*")
str.splitlines(keepends)
按照(‘\r‘, ‘\r\n‘ , ‘\n‘ ) 分隔,返回一个列表
#keepends == True 会保留换行符
" ".join(list)
以指定的字符串分割符,将seq中的所有元素组合成一个字符串
将list转换成字符串
max(str) 求字符串中最大的元素
min(str) 求字符串中最小的元素
str.replace(oldstr,newstr2,num)
用newstr替换oldstr,默认是全部替换
如果指定了num数量,只替换前num个
t46=str.maketrans(oldstr,newstr)
创建一个字符串映射表
oldstr 是要转换的字符串,newstr是目标字符串
str.translate(t46)
将字符串按照字符串映射表去转换
str.startswith(str,start=0,end=len(str))
在给定的范围内判断是否是以给定的字符串开头,如果没有指定范围,默认是整个字符串
str.endswith(str,start=0,end= len(str))
在给定的范围内判断是否是以给定的字符串结尾,如果没有指定范围,默认是整个字符串
str.encode(encoding = "utf-8",errors = "strict")
编码
#第二个参数写 ignore 忽略错误
str.decode(encoding = "utf-8",errors = "strict")
解码
注意: 解码时要与编码时的编码格式一致
str.isalpha()
如果字符串中至少有一个字符且所有字符都是字母,返回True 否则返回False
str.isalnum()
如果字符串中至少有一个字符且所有的字符都是字母或数字,返回True,否则返回False
str.isupper()
如果字符串中至少有一个英文字符且所有的英文字符都是大写的英文字母,返回True,否则返回False
str.islower()
如果字符串中至少有一个英文字符且所有的英文字符都是小写的英文字母,返回True,否则返回False
str.istitle()
如果字符串是标题化的返回True,否则返回False
str.isdigit()
如果字符串中只包含数字字符返回True,否则返回False
str.isnumeric()
如果字符串中只包含数字字符返回True,否则返回False
str.isdecimal()
字符串中只包含十进制字符
str.isspace()
如果字符中只包含空格则返回True,否则返回False
字符串比较大小
从第一个字符开始比较,谁的ASCII值大谁就大,如果相等会比较下一个字符的ASCII值大小,那么谁的值大
while语句
格式
while 表达式:
语句
逻辑:当程序执行到while语句时,首先计算"表达式"的值,如果”表达式“的值为假,那么结束整个while语句,如果"表达式"的值为真,则执行”语句“,执行完”语句“,再去计算”表达式“的值。如果”表达式“的值为假,那么结束整个while语句。如果"表达式"的值还为真,则执行"语句",执行完”语句“,再去计算”表达式“的值。如此循环反复,直到表达式的值为假才停止