Python 基础入门 2_1 String数据类型

# String字符串数据类型,python并没有字符的概念,
"""
String变量/常量+String变量/常量 拼接字符串
String变量/常量*常数 以常数倍重复字符串
String变量[index] 根据索引值找对应的字符串(1个)
String变量[start:stop] 截取String变量从[开始值,结束值)的字符串
+-----------------------+
| S | t | r | i | n | g |
+-----------------------+
从正索引 | 0 | 1 | 2 | 3 | 4 | 5 |
+-----------------------+
从背索引 | -6| -5| -4| -3| -2| -1|
+-----------------------+
"""
# print("hello "+"world" , "Hello"*4 ,"tring"[4] ,"tring"[-2],"string"[0:5],"string"[-6:-1])

"""
格式化字符串,作用,在print方法输出字符串时,格式化字符串可以代替变量
%c 格式化字符及其ASCII码 %o 格式化无符号八进制数
%s 格式化字符串 %x 格式化无符号十六进制数
%d 格式化整型 %X 格式化无符号十六进制数(英文字母大写)
%f 格式化浮点数字,可指定小数点后的精度(%.2f 保留两个小数)
"""
num1,num2,num3,str1,num4 = -1,1,0Xa,"a",1.23456
# print("num1=%d,num2=%o,num3=%x,str1=%s" %(num1,num2,num3,str1))
# print("num1=%c,num4=%.2f,num2=%X" %(str1,num4,num3));

"""
转义字符,作用,在print方法输出字符串时,转移字符可以调试的作用
\ 续行符 \\ 反斜杆符号 \' 单引号 \" 双引号
\a 响铃 \b 退格 \e 转义 \000 空
\n 换行 \v 纵向制表符 \t 横向制表符 \r 回车
\f 换页 \other 其他特殊字符以普通字符输出

R/r :将字符串内所有的字符不转义
"""
# print("\"HJL \n\vs \t a man \"\b")
# print(r"\"HJL \n\vs \t a man \"\b")

"""
字符串的方法:
eval(str) 将字符串看成算术表达式并返回求值结果,注意str不能是字母和特殊符号(+ ,-除外,但不能位于首位和尾位)
len(str) 返回字符串的长度
str.count(str1,[int1],[int2]) 返回str在int1和int2范围内出现str1的次数,默认时从字符串的开头到结尾
ord(str) 将str字符对应Ascoll表的数值
chr(int) 将int数值对应Ascoll表的字符

str.lower() 将字符串中大写字母转换成小写字母
str.upper() 将字符串中小写字母转换成大写字母
str.swapcase() 将字符串中大写转小写同时小写转大写
str.capitalize() 将字符串的首字母大写(尽第一个单词)
str.title() 将字符串所有单词的首字母大写

#填充字符串[str]
str.center(int ,[str1]) 返回指定int长度并将str居中,其余以str1填充的字符串,默认是空格
str.ljust(int ,[str1]) 返回指定int长度并将str左对齐,其余以str1填充的字符串,默认是空格
str.rjust(int ,[str1]) 返回指定int长度并将str右对齐,其余以str1填充的字符串,默认是空格
str.zfill(int) 返回指定int长度并将str右对齐,其余以0填充的字符串

#截取字符串[str]
str.lstrip([str1]) 返回从str左侧截取掉str1的字符串,默认是空格
str.rstrip([str1]) 返回从str右侧截取掉str1的字符串,默认是空格
str.strip([str1]) 返回从str两边截取掉str1的字符串,默认是空格

#获取对应位置值[int]
str.find(str1,[int1],[int2]) 返回str在int1和int2范围内从左到右查找str1并返回对应的位置,默认是从字符串的开头到结尾
str.rfind(str1,[int1],[int2]) 返回str在int1和int2范围内从右到左查找str1并返回对应的位置,默认是从字符串的开头到结尾
str.index(str,[int1],[int2]) 跟str.find()功能一样,只是如果字符串在int1和int2范围内没有找到str1会报错,从左到右找
str.rindex(str,[int1],[int2]) 跟str.rfind()功能一样,只是如果字符串在int1和int2范围内没有找到str2会报错,从右到左找
"""
# str,str1=" **String one Two three**","***111***"
# print(eval("1+3"),"\t",len(str),str.lower(),"\t",str.upper(),"\t",str.swapcase(),"\t",str.capitalize())
# print(str.title(),"\t" , str.center(40,"*") , "\t" , str.ljust(40) , "\t" , str.rjust(40,"+"))
# print(str.count("r",0,13),"\t" ,str.find("one",1),str.rfind("o"))
# print(str.lstrip(),str.rstrip("*"),str1.strip("*"))

"""
String方法:
str.split(str1 [,int]) 返回以str1作为分隔符截取int次str的列表,int的默认是str.count(str1)
str.splitlines([boolean]) 返回以行截取str的列表,为True,list元素结尾中有"\n";False则没有,默认是False
str1.join(list) 返回以str1拼接list各个元素的字符串,list中的元素只能是字符串
max/min(str1) 返回以str1中最大/最小的字符串(通过Ascoll码比较)

str.replace(str1,str2,[int]) 将str中前int个str1替换成str2,int默认是str.count[str1]个;str1可以是str中没有的,但将没有任何替换
# str.maketrans(str1,str2) 创建一个str1索引值对应str2索引值的映射表(string类型), str1与str2的长度要一样
# str.translate(映射表) 根据映射表,全部替换str中的字符串 不常用,因为不可控

str.startswith(str1[,int1][,int2]) 判断str在[int1,int2)范围内是否以str开头,int1默认是0,int2默认是str的长度
str.endswith(str1[,int1][,int2]) 判断str在[int1,int2)范围内是否以str结尾,int1默认是0,int2默认是str的长度

str.encode(encoding,errors) 返回将str以encoding形式进行编码的数据(bytes数据类型)
data.decode(encoding,errors) 返回将data以encoding形式进行解码的字符串
errors的值有strict,ignore,默认是strict
注意:编码与解码的encoding值要一致,如果不一致且errors的值为ignore,则乱码;若error的值为strict,则报错

#判断字符串
str.isalpha() 判断str字符串长度是否大于等于1且str字符串是否由英文字母组成
str.isalnum() 判断str字符串长度是否大于等于1且str字符串中是否由英文字母,数字组成
str.isupper() 判断str字符串长度是否大于等于1且str字符串中是否第一个字符是英文大写字母,之后的字符不能是小写字母组成
str.islower() 判断str字符串长度是否大于等于1且str字符串中是否第一个字符是英文小写字母,之后的字符不能是大写字母组成
str.istitle() 判断str字符串长度是否大于等于1且str字符串中每个单词的首字母是否大写
str.isdigit() 判断str字符串长度是否大于等于1且str字符串是否由数字组成
str.isnumeric() 判断str字符串长度是否大于等于1且str字符串是否由数字组成(试验过,中文一或壹返回true值)
str.decimal() 判断str字符串长度是否大于等于1且str字符串是否由数字组成
isspace() 判断str是否由空格符号组成
"""
str_split,str_list= "I am a ",["1","a"]
str_splitlines=""" I
am
a
"""

str_list="**".join(str_list)
print(str_split.split(" ",2),str_splitlines.splitlines(True),str_list,max(str_list),min(str_list))
print(str_list.replace(" ","*",1),str_list.translate(str_list.maketrans("a","6")))
print(str_list.startswith("*",1),str_list.endswith("*",0,len(str_list)-1 ))
print("++++++++++++++++++++++")
print("aFJL".isupper(),"I Am".istitle(),"0XA".isdigit(),"一壹1".isnumeric(),)

猜你喜欢

转载自www.cnblogs.com/hjlin/p/10627336.html