Python内置数据类型总结(字符串)

Python内置数据类型总结(字符串)

  字符串是Python中最常用的数据类型之一,使用单引号、双引号、三引号来括起来表示,三引号表示多行字符串,平常使用单引号或双引号就行。如有单、双引号嵌套时,可使用反斜杠【\】进行转义,或者使用不是嵌套中的引号,例如 var = 'This is "dog"!'。

  字符串是不可变的序列数据类型,不能修改字符串本身,和数字类型一样!Python完全支持Unicode编码,所有的字符串都是Unicode字符串。虽然字符串本身不可变,但是可以像列表一样进行切片和截取子串操作,但不会引起字符串本身的变化。

  1.字符串运算:

    下表中a为"Xiao",b为"Shouhua"

操作描述例子结果
+字符串拼接(速度慢,少用)a + b"XiaoShouhua"
*重复字符串,相当于乘法a * 2"XiaoXiao"
[]通过索引获取字符串中的字符a[2]"a"
[ : ]截取、切片a[2:]"ao"
in成员运算符,如果字符串中包括给定的字符串,返回True"X" in aTrue
not in同上,不包含返回True"X" not in aFalse
r/R原始字符串,不会转义特殊字符print(r"\n")\n

  2.转义字符串:

  转义字符串都有特殊含义,见下表:

转义字符描述
\(在行尾时)续行符
\\反斜杠
\'单引号
\"双引号
\a响铃
\b退格
\e转义
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\o33颜色控制

 3、字符串内置方法

  下表从常用的字符串内置方法开始梳理,常用的都要记住如何使用,不常用的要有印象,以*的个数表示常用的程度。

方法描述使用频率
string.split(sep, maxsplit=-1) 字符串分割,返回对象为分割后的子串列表。默认使用空格分割,可指定分隔符,分隔符不包含在分割后的子串中;默认贪婪分割,可指定分割次数。  *****
string.splitlines([keepends]) 按照('\r','\r\n','\n')分割字符串,返回一个包含各行作为元素的列表,如果参数keepends为False,不包含换行符,否则保留换行符***
string.strip([chars]) 默认返回去除字符串两边空格的字符串,其中有string.lstrip()和string.rstrip()是分别去除左、右各边的空格。可指定去除的字符*****
string.find(sub[, star[, end]] ) 返回查找子串出现的第一个位置索引,可以指定查找范围,没有找到子串返回-1。其中string.rfind()是从右边开始查找*****
string.index(sub[, start[, end]]) 返回查找子串出现的一个位置索引,可指定查找范围,没有找到会异常ValueError,其中string.rindex()是从右边开始检索****
string.count(sub[, start[, end]]) 返回查找子串在字符串中出现的次数,可指定查找范围,没有找到,返回0****
string.lower() 返回一个全部为小写的字符串****
string.upper() 返回一个全部为大写的字符串****
string.startswith(prefix[, start[, end]]) 返回在给定范围中是是否以指定字符串开头,是返回True,否则返回False****
string.endswith(prefix[, start[, end]]) 返回在给定范围中是是否以指定字符串结尾,是返回True,否则返回False****
string.replace(old, new[, count]) 返回使用字符串new替换字符串old  count次的新的字符串****
string.encode(encoding='utf-8', errors='strict') 返回以encoding指定的编码格式编码的bytes对象,如果出错会报一个UnicodeEncodeError异常,除非指定errors是'ignore'或者'replace'。****
bytes.decode(encoding='utf-8', errors='strict') 和string.encode是逆向过程,将bytes以指定编码格式解码为string,如果出错会报一个UnicodeEncodeError异常,除非指定errors是'ignore'或者'replace'。****
string.format()  格式化字符串,常用方式为位置参数和关键字参数*****
string.join(seq) 以指定的string为分隔符,将序列seq中的元素(其中的元素必须是以字符串类型的形式才可以)合并为一个新的字符串***
string.center(width)  返回一个原字符串居中,并默认使用空格填充至长度width的新字符串,可指定填充字符串****
string.ljust(width) 返回一个原字符串左对齐,并默认使用空格在右侧填充至长度width的新字符串,可指定填充字符串***
string.rjust(width) 返回一个原字符串右对齐,并默认使用空格在左侧填充至长度width的新字符串,可指定填充字符串**
string.zfill(width)返回长度为width的字符串,原字符串右对齐,前面填充0**
string.expandtabs(tabsize=8) 把字符串string中的tab符号转化为空格,tab默认空格数是8**
 string.capitalize() 返回首字母大写的字符串 *
string.isalnum()  如果string中至少出现一个字符并且所有的字符都是是字母或数字做返回True,否则返回False***
string.isalpha() 如果string中至少出现一个字符且所有字符都是字母的则返回True,否则返回False***
string.isdigit()  string中除过汉子数字返回False,其余数字(unicode数字,bytes数字(单字节),全角数字(双字节),罗马数字)都返回True,无Error***
string.isdecimal() 因为bytes类型数字没有isdecimal属性,会报异常AttributeError,unicode数字、全角数字返回True,罗马数字、汉子数字会返回False***
string.isnumeric() 因为bytes类型数字没有isnumeric属性,会报异常AttributeError,其余类型数字都返回True**
string.islower()  只要string中不包含大写字符并且包含至少一个小写字符就会返回True,否则返回False***
string.isupper() 只要string中不包含小写字符并且包含至少一个大写字符就会返回True,否则返回False***
string.istitle() 如果string是标题式的字符串,返回True,否则返回False,标题式是:字符串中的单词首字母大写,例如"Title 10Dd"***
string.isspace() 如果string中只包含空格类型,就返回True,否则返回False。空格类型:' \n\t\v\r\f '**
string.title(width) 返回‘标题化’的string,即单词的首字母全部大写,其余字母小写。**
string.swapcase() 翻转大小写*
str.maketrans(intab, outtab) 接受两个长度相同的字符串,第一个字符串是需要转换的字符串,第二个字符串是转化的目标字符串,用于创建字符串映射的转化表 **
string.translagte 使用str.maketrans()方法转化的转化表进行字符串的转化 **
string.partion(str)  从左边找str出现的第一个位置起,把字符串string分成一个3元素的元祖(string_pre_str, str, string_post_str),如果string中不包含str,则string_pre_str == string **
string.rpartion()   从右边找str出现的第一个位置起,把字符串string分成一个3元素的元祖(string_pre_str, str, string_post_str),如果string中不包含str,则string_pre_str == string **

 

  4.编码问题

  计算机只能处理二进制数01,所以产生了字符编码,用来将我们人类可读的数据类型转化为二进制。常用编码包括ASCII码、Unicode编码、utf-8编码、GB2312、gbk等。

  但在python3中运行时全部使用Unicode编码不会产生任何编码问题,对于编码,要记住三条规则:

  操作系统运行时,在内存中统一使用的Unicode编码,当需要将数据保存到硬盘或者网络传输时,就转化为utf-8编码,进行保存和传输;

  用文本编辑器的时候,从文件系统或者说硬盘上读取的utf-8编码字符被转换为Unicode编码字符到内存中,程序或操作系统才能使用。编辑完成后,保存时再转换为uft-8进行保存;

  浏览网页时,服务器会把Unicode内容转化为utf-8进行传输给客户端浏览器。

转载于:https://www.cnblogs.com/xiaoshouhua/p/8627891.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值