专栏首页武军超python专栏2018-7月19日系统模块字符串操作

2018-7月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)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2018年9月9日正则表达式随堂记

    *********************** 今天遇到的新单词: element n元素,要素 multibyte n多字节 sequence n数列...

    武军超
  • 2018年8月14日TCP网络编程及具体代码

    静态文件?顾名思义,静态文件就是那些不会改变的文件,例如视频音乐,图片等类似的文件 NT平台:指的是windows NT操作系统,是windows在199...

    武军超
  • 2018年7月22日用python写个人博客时遇到的问题

    今天遇到的新单词: subscript  n下标,脚注 integer    n整数,整型 function   n函数 variable   n变量 ...

    武军超
  • Python字符串的基本用法总结

        字符串序列用于表示和存储文本,python中字符串是不可变对象。通常由单引号(' ),双引号(" ),三引号(''' """)包围,其中三引号可以由多行...

    py3study
  • Python学习笔记:Python字符串操作

    find方法从左至右搜索字符串,返回指定子字符串第一次出现的索引值。注意,索引值从0开始。其语法为:

    fanjy
  • 少用 string.Format

    如果你使用的是 C# 6.0 及其以上版本的话我建议你使用新增的 内插字符串 这个功能。这个功能可以更好的帮助开发人员设置字符串格式。下面我们就来看一下为什么要...

    喵叔
  • 水题 统计字符

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 常用函数之字符串时间等

    mysqli_real_escape_string() — 使用反斜线引用字符串 sql注入

    老雷PHP全栈开发
  • 常用函数之字符串时间等

    mysqli_real_escape_string() — 使用反斜线引用字符串 sql注入

    老雷PHP全栈开发
  • PHP字符串操作函数

    这两个函数都是按字节进行字符串比较,其中strcmp()函数区分大小写,strcasecmp()不区分大小写

    白胡杨同学

扫码关注云+社区

领取腾讯云代金券