一:字符串是什么?
字符串是Python最常用的一种数据类型,虽然看似简单,但能够以不同的方式来使用它们。
字符串就是一系列的字符,在Python中,用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号。如“name”、‘age’都可以称为字符串。
二:字符串的创建
"Python" 'Python' # 这两种方式都称为字符串 name="Python" #一般在定义字符串的时候,都会给他赋值给一个变量
三:字符串的常用功能(详细)
以C开头的方法:
name="czp" print(name.capitalize()) ##首字母变大写 #---------------------------------------------------------------------------------- print(name.casefold()) ##将字符串中出现的字母变为小写,很多未知的对相应变小写 #---------------------------------------------------------------------------------- print(name.center(20)) ##字符串内容居中,左右宽度各为20 print(name.center(20,"*")) ##字符串内容居中,左右宽度各为20个“*”,后面的填充内容可随意更换 #---------------------------------------------------------------------------------- print(name.count("cd")) ##字符串子序列查询,如存在返回查询次数,不存在返回0,不会报错
以E开头的方法:
print(name.endswith("p")) ##判断以什么结尾,返回值为布尔值 name1="czp 123" print(name1) print(name1.expandtabs()) ##将制表符/t转换为空格,默认是8。参数写多少,就是将多少位分一段,将/t转换为空格填充 此方法可以用来绘制表格,如 test = "username email password laiying ying@q.com 123 laiying ying@q.com 123 laiying ying@q.com 123" v = test.expandtabs(20) print(v)
以F开头的方法:
print(name.find("c")) ##查找是否包含子字符串,如果有,返回索引位置,否则返回-1 #---------------------------------------------------------------------------------- name1="my name is {name}" print(name1.format(name="czp")) ##字符串格式化,通过format方法给变量传值并输出 #---------------------------------------------------------------------------------- print(name1.format_map({"name":"czp"})) ##字符串格式化,与format方法不同的是赋值的方式不同
以I开头的方法:
name="czp" #print(name.index("c")) ##查找子序列的下标,如果不存在,程序会报错 #------------------------------------------------------------------------------------ print(name.isdigit()) ##判断字符串是否是数字,返回值为布尔值 #------------------------------------------------------------------------------------ print(name.isalnum()) ##判断字符串是否是数字和字母,返回值为布尔值 #------------------------------------------------------------------------------------ print(name.isalpha()) ##判断字符串是否是字母,必须全为字母2,才会返回True #------------------------------------------------------------------------------------ print(name.isdecimal()) ##判断字符串是否只包含十进制字符。这种方法只存在于unicode对象。 #---------------------------------------------------------------------------------------- print(name.isidentifier()) ##判断字符串是否已字幕开头 #---------------------------------------------------------------------------------------- print(name.islower()) ##判断字符串是否小写 #---------------------------------------------------------------------------------------- print(name.isnumeric()) ##判断字符串是否只是以数字组成 #---------------------------------------------------------------------------------------- print(name.isprintable()) ##判断字符串中所有字符是否都属于可见字符,如有 , 等,肯定会返回false #----------------------------------------------------------------------------------------- print(name.isspace()) ##判断字符串是否为空格(空值、字符串间的空格,都为False) #----------------------------------------------------------------------------------------- print(name.istitle()) ##判断字符串是否为标题,即是否首字母大写 #----------------------------------------------------------------------------------------- print(name.isupper()) ##判断字符串是否为大写,返回布尔值
以J开头的方法:
name="czp" print(" ".join(name)) ##序列中的元素以指定的字符连接生成一个新的字符串。 这个会在下面例子中介绍详细用法。
以L开头的方法:
name=" czp" print(name.ljust(20,"*")) ##返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串 #--------------------------------------------------------------------------------------------- print(name.lower()) #将字符串中的字母全部变为小写 #---------------------------------------------------------------------------------------------- print(name.lstrip()) #去除字符串左边开头的空格
以P开头的方法:
name="czp" print(name.partition("c")) ##分割前、中、后三个部分,通过写入指定的字符串子序列
以R开头的方法:
name="czp" print(name.rstrip()) #去除字符串左边开头的空格 #--------------------------------------------------------------------------------------------- print(name.replace("c","z")) #替换字符串中的子序列 #------------------------------------------------------------------------------------------- print(name.rfind("p")) #返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。 #------------------------------------------------------------------------------------------- print(name.rindex("c")) #返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常 #-------------------------------------------------------------------------------------------- print(name.rjust(20,"0")) #返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。 #---------------------------------------------------------------------------------------------
以S开头的方法:
name="c z p" print(name.strip()) #移除字符串头尾指定的字符(默认为空格)。 #------------------------------------------------------------------------------------------------- print(name.split(" ",2)) #指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 #------------------------------------------------------------------------------------------------- print(name.splitlines()) #根据换行分割” “ #-------------------------------------------------------------------------------------------------- print(name.startswith("c")) #判断字符串以什么开头,返回布尔值 #------------------------------------------------------------------------------------------------- print(name.swapcase()) #对字符串的大小写字母进行转换
其他的方法:
print(name.title()) #将首字母大写 print(name.upper()) #将字符串中的字母改为大写 #-------------------------------------------------------------------------------------------------- print(name.zfill(20)) #返回指定长度的字符串,原字符串右对齐,前面填充0
四:数字(int)
在编程中,经常使用数字来记录游戏得分、表示可视化数据等,Python根据数字的用法以不同的方式来处理它们
在Python中,可对整数执行加(+)、减(-)、乘(*)、除(/)等运算,具体运算请参考上一篇博文
五:布尔值
真或假(1 或 0)
六:常用python字符串
日常使用python都要进行文本操作,无论你是爬虫还是数据分析,还是大数据的文本清理,还是普通文件的处理,都要用到字符串,Python内置以上这么多字符串(当然还不断更新呢),下面是我总结的常用一下方法。
1.字符串的连接与合并
通过“+”链接
str = "hello" str = "world' new_str=str1+str2 print(new_str) >>>helloworld
用join方法
url =["www","baidu","com"] print(".".join(url)) >>>www.baidu.com
2.字符串的分割
普通分割split,用split只能进行简单的分割,而且不支持多个分割
phone = "400-100-200-300" print(phone.split("-")) >>>["400","100","200","300"]
复杂的分割re模块,r表示不转义,分割字符可以是冒号,逗号或者空格后面跟额外多个的空格,然后按照这个模式去分割
line="hello world; python, I ,like, it" import re print(re.split(r"[;,s]s*",line))
3.字符串开头结尾处理(常用方法见上面详解)
4.字符串查找
- 一般查找find,会返回索引,找不到就返回-1
title = ”Python can be easy to pick up and powerfullang" print(title.find("pick up")) >>>22
- 复杂的匹配,re模块
mydate ="11/27/2016" import re if re.match(r'd+/d+/d+',mydate) print("ok,match") else: print("ok,not match") >>ok,match
5.字符串的替换(普通用replace,复杂用re模块)