前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018-7月19日系统模块字符串操作

2018-7月19日系统模块字符串操作

作者头像
武军超
发布2018-09-27 11:27:19
6960
发布2018-09-27 11:27:19
举报

每天遇到的新单词: recursion   n:递归 objece      n:对象 maximum     adj:最大值 exceed      v:超过,超越 exceeded    adj:过度的,非常的 attribute   v:认为是 isdigit     n:数字 task        n:任务 encode      v:编码 decode      v:解码 separator   n:分隔符

组合数据类型的遍历: 列表,元组,集合都可以用for直接遍历如: for x in f: print(x) 但是字典不能, 字典只能用for x,y in f.items():           print(x,y) 字典的items()函数是遍历出所有的键值对,keys()函数是遍历出所有的keys, values()函数是遍历出所有的values. for x in f.keys()           for x in f.values() print(x)                   print(x)

python中的命名规范,不用看具体代码就能知道该名字代表的是什么: import tools    #引入一个 模块 tools.user          #代表一个变量    tools.show_user()   #函数    tools.Auther        #类型   其他命名法:show_user事用的最多的下划线命名法 showUser 小驼峰命名法  ShowUser 大驼峰命名法

代码一定要注意规范!

代码中ctrl+鼠标左键是打开该函数

基础数据类型是不可变的数据类型  a=10 b=a b=12 结果是:a=10,b=12 组合数据类型是可变的数据类型  a=[1,2,3] b=a b.append[12]   结果是:a=[1,2,3,12]  b=[1,2,3,12]

别的文件中的全局变量在本文件中不用声明global name,可以直接 data.name="tom"修改它的值,但是本文件中的 全局变量必须global+变量名声明一下才能进行修改

完善个人资料? 可变参数类型的输出值是元组吗?

python中如果想打印%就用两个%

************************************ 1.字符串:代码中包含在一对引号中的字符/三引号中的字符,引号可以是单引号也可以是双引号,如: s1 = "这是一个字符串" s2 = '这也是一个字符串' s3 = """ 这是一个长字符串 支持换行 在某些情况下,可以当成(文档)注释使用[不赋值] 比如在文件的开头、函数的开头、类型的开头 """

2.转义字符: s4 = "这是一个'特殊'的字符串,单引号和双引号可以交叉使用" s41 = '单引号字符串中可以"直接包含"双引号' # 转义:转变原来的含义,符号: \ # \t:将一个普通的字符t,转变成tab制表符,意思是空格 # \n:讲一个普通的字符n,转变成换行符,意思是换行 # \r:将一个普通的字符r,转换成回车符,意思是回车 s5 = "双引号中如果想显示双引号,必须使用转义符号,这又是一个\"特殊\"的字符串"

3.字符串的拼接: 两个字符串可直接通过连接符号+拼接 s = "hello" s2 = "world" s3 = s1 + s2 字符串类型不可以和其他类型直接拼接 # i1 = 10 # s4 = s + i1 # print(s4) # TypeError: must be str, not int

4.字符串的特殊拼接:占位符拼接 # 字符串占位符:%s,%d,%f name = input("请输入您的姓名:") s5 = "welcome to China, my name is " + name s6 = "welcome to china, my name is %s" % name s7 = "hello my name is %s, %s years old!" % (name, 18)

# 整数占位 s9 = "this goods%% is ¥%d" % 100 print(s9)

# 浮点数占位 s10 = "圆周率是%.10f" % 13.1415926      #小数点后边的数字代表小数点后边保留的位数,默认为6位 print(s10) s="%.*f"%(2,1.2)       # *和后边的括号中的第一个数对应,表示保留几位小数,第一个数必须是整数

占位符也可以指定占用多少个位置:  s="abc%20s"%"hello"             %百分号后边的数字表示后边的字符需要占用的位置,默认是加号表示右对齐,同下 >>> s 'abc               hello' >>> s="abc%+20s"%"hello"          >>> s 'abc               hello'

>>> s="abc%-20s"%"hello"         %百分号后边的数字表示后边将要输出的字符占用的位置,减号表示左对齐 >>> s 'abchello               '

5.字符串函数: 字符串函数:python系统内内置的对字符串的各种操作的支持 ['capitalize', 'casefold',center', 'count', 'encode', 'endswith',   'expandtabs', 'find', 'format', 'format_map','index', 'isalnum', 'isalpha', 'isdecimal',   'isdigit', 'isidentifier', 'islower','isnumeric', 'isprintable', 'isspace',   'istitle', 'isupper', 'join', 'ljust','lower', 'lstrip', 'maketrans', 'partition',   'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split',   'splitlines', 'startswith', 'strip', 'swapcase','title', 'translate', 'upper', 'zfill'] *** capitalize:首字母大写    upper大写     lower小写        #使字符串变成自己想要变成的类型:n.upper()     istitle是否首字母大写   isupper是否大写    islower是否小写   #下面三个是判断时使用的, 用于返回True和False,如a=hello     a.istitle()   结果就是返回一个False

capitalize     v:用大写字母写 

*** 6.字符串中的对齐方式和剔除空格 s = "hello" s.center(10)        #意思是s在操作的时候,占用10个字符,并且内容居中对其 s.center(11, '-')   #意思是s在操作的时候,占用11个字符,居中对其,空白的位置使用指定的字符补齐 s.ljust(10,“*”)  # s占用10个字符,左对齐,空白的位置使用指定的字符补齐 s.rjust(10)         # s占用10个字符,右对齐

s="1" s.rjust(4,"0")     结果是:'0001'    

s.lstrip()   # 删除字符串s左边的空格             #stirp   v:删除清除 s.rstrip()   # 删除字符串s右边的空格 s.strip()    # 删除字符串s两边的空格

7.判断字符串里面是不是只包含整数:isdigit()  里面如有字符或者小数点都会返回False, 因为会把小数点当做字符串处理  s="12" >>> s.isdigit()                  #digit   n:数字 True

>>> s="12a" >>> s.isdigit() False

>>> s="12.11" >>> s.isdigit() False

8.判断字符串里面有没有字母以外的东西: isalpha()    大小写纯字母都会返回True , 字母之外的任何字符都会返回False,下划线也不例外:  s="abAB" >>> s.isalpha() True

>>> s="a1" >>> s.isalpha() False

>>> s="a_b" >>> s.isalpha() False

9,判断字符里面是不是只包含大小写字母和数字: isalnum()  如果是的话返回True, 如果包含其他任何特殊字符都会返回False: s="aA123" >>> s.isalnum()           #alphanumeric True                      #adj:文字数字的,包含文字与数字的

>>> s="aA1_2" >>> s.isalnum() False

*** 10.字符串的查询/匹配操作:(为什么要有两个查询?因为python是很多人很多组织一起写的, 并没有互相通知,所有出现同一个功能会有不同的函数) # # find  / rfind # # index / rindex # s = "hello" # x = s.find("lo")   # 查询指定的字符串第一次出现的位置;如果没有查询到返回-1 # x2 = s.index("lo")# 查询指定的字符串第一次出现的位置;如果没有查询到直接报错Error 11.一个字符串的编码,可以把字符串编码成不同的形式:encode()   encode:v编码 s="我爱你" >>> s.encode("utf-8")                        #把我爱你以utf-8的编码形式重新编码, b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'      #前面b开头是指的是这是以二进制开头的字符串,byte:字节 >>> s.encode("gb2312")                       #把我爱你以国标2312的编码方式重新编码 b'\xce\xd2\xb0\xae\xc4\xe3'

s=b"str"            以b开头的都是表示二进制形式的字符串(括号里面不能是中文,其他都可以) >>> s b'str' >>> type(s) <class 'bytes'>

如果别人给你一串二进制形式的字符串,你还可以解码:  decode()  decode:v解码  如果: s="我爱你" >>> s.encode("utf-8")                         b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'  解码:                                            #前提是要知道别人是以哪种方式编码的 a=b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'  a.decode("utf-8") 我爱你 12.查看字符串是否以某个字符串开头或结尾: s.startswith("he") # 判断s是否是"he"开头的字符串吧,返回True/False s.endswith("lo")   # 判断s是否是"lo"结尾的字符串,返回True/False

13.把有序的字符串以某种形式连接起来: 列表,元组,集合都可以,字典不可以  "--".join(["abc","123"]) 'abc--123'

*** 14.字符串的拆分:  字符串的拆分 # a="http/jgoig/ghoig/gogi/12.jpg" # # 拆分字符串 >>> a.partition("/")                  #在字符串中看有什么样的分隔符括号里面就用哪个分隔符来拆 ('http', '/', 'jgoig/ghoig/gogi/12.jpg')   #partition()默认从左边第一个分隔符那拆,把整个字符串分成/左右两部分

>>> a.rpartition("/")[-1]             #rpartition()从右边开始拆,并以切片的方式返回最后一个值 '12.jpg'                                   

>>> a.split("/")                                   #split()是把整个字符串在所有分隔符的地方拆开 ['http', 'jgoig', 'ghoig', 'gogi', '12.jpg'] >>> a.split("/")[-1]                              #把整个字符串在所有分隔符的地方拆开并返回最后一个值 '12.jpg'

*** 15.字符串的替换[查询->替换]replace: a="hello" >>> a.replace("l","*")    #括号内内第一个值是要被替换的东西,,第二个值是要替换的内容 'he**o' >>> a.replace("l","*",1)  #括号中的第三个值是可选的,代表替换的个数, 'he*lo'               不写的话默认的是将字符串中的原数据全部替换,这里写1是指只替换一个l

content = "发表一TMD片文章:文TMD章内容中TMD今天真热" # print(content) # content = content.replace("TMD", "***") # print(content)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档