zoukankan      html  css  js  c++  java
  • Python基础字符串的应用与实践

    字符串格式化

    字符串格式化其实就是字符串的拼接,自定义将某些字符串植入到主字符串之中,这里介绍几种常用的方式。

    百分号占位

    tmp = ‘你好 我是%s,我今天挣了%.2f元钱’
    value = (‘小明’,5.32567)
    str = tmp % value
    print(str)
    打印结果:
    你好 我是小明,我今天挣了5.33元钱

    百分号是占位符,后面紧跟着元素类型,s就是string的意思,f就是float的意思,一般也只用得到这两种。

    格式化符号有一张表的,大概就是下面这样

    模板字符串

    from string import Template
    tmp1 = Template(‘你好 我是name,我今天挣了 name,我今天挣了name,我今天挣了num元钱’)
    str = tmp1.substitute(name=“小红”,num=“6”)
    print(str)
    打印结果:
    你好 我是小红,我今天挣了6元钱

    format格式化

    以前的老python必然有它遗留下来的写法,但是目前大部分格式化字符串的写法还是以format方式为主流。

    str = “{},{}还有{}”.format(“小明”,“小红”,“小强”)
    print(str)
    打印结果:
    小明,小红还有小强

    我们还可以在占位符中标记值的编号,编号从0开始。

    str = “{2},{1}还有{4},你们三个里面只有{1}的学习最好”.format(“小明”,“小红”,“小强”,“小芳”,“小黑”)
    print(str)
    打印结果:
    小强,小红还有小黑,你们三个里面只有小红学习最好

    我们仍然可以使用变量命名的方式:

    str = “今天是{name}的{age}岁生日”.format(name=“小明”,age=18)
    print(str)
    打印结果:
    今天是小明的18岁生日

    如果你有兴趣细扣的话,会发现format的用法有很多,各种稀奇古怪的替换方式和格式处理只有你想不到的,但是用到的时候都是小概率,所以就不过多描述了。

    f字符串

    f字符串是python3.6新加入的一种格式化字符串的方式,对于新写的代码推荐使用这种方式来解决格式化的需求。

    name = “小明”
    age = 18
    str = f"今天是{name}的{age}岁生日"
    print(str)
    打印结果:
    今天是小明的18岁生日

    可以看出,它其实就是变量植入,这种方式更易阅读。

    回到顶部
    常用方法

    字符串居中 center()

    这个方法通过在两边添加填充字符使得让字符串居中,默认填充的是空格

    name = “我是小明”
    print(name)
    print(name.center(10))
    打印结果:
    我是小明
    我是小明

    上面的代码让字符串填充到10个字符,除去字符串本身占据4个字符,那么还需要填充6个,也就是左右各3个字符。

    我们可以指定填充的字符:

    name = “我是小明”
    print(name)
    print(name.center(10,’*’))
    打印结果:
    我是小明
    我是小明

    查找字符串 find()

    如果你想在一个字符串中查找子字符串,可以使用find方法,如果找到,会返回子串所在的索引,如果没找到,返回-1

    name = “我是小明”
    print(name.find(‘小明’))
    打印结果:
    2

    你还可以指定查找范围,find方法另有两个选填参数,可以传递查找的开始索引与结束索引。

    name = “我是小明”
    print(name.find(‘小明’,0,3))
    打印结果:
    -1

    需要注意的是,结束索引是不包含的,也就是说,我刚刚指定查找的是第0、第1、第2个索引,也就是“我是小”三个字,所以它返回-1

    大小写转换 upper、lower、title

    转大写:

    words = “abc”
    print(words.upper())
    打印结果:
    ABC

    转小写:

    words = “ABC”
    print(words.lower())
    打印结果:
    abc

    以单词为界限 首字母大写其他小写:

    words = “my name is bob”
    print(words.title())
    打印结果:
    My Name Is Bob

    打散字符串 split()

    字符串打散后会返回列表格式,不指定切割的字符的话,默认会在空白字符比如空格、tab符、换行符等地方进行切割。

    words = “my name is bob”
    print(words.split())
    打印结果:
    [‘my’, ‘name’, ‘is’, ‘bob’]

    一般我们都会指定切割符:

    words = “/usr/bin/env”
    print(words.split(’/’))
    打印结果:
    [’’, ‘usr’, ‘bin’, ‘env’]

    序列合并字符串 join()

    这个方法与split方法的作用完全相反,split把字符串打散成序列,join可以把打散后的序列重新合并成原字符串。

    words = [’’, ‘usr’, ‘bin’, ‘env’]
    print(’/’.join(words))
    打印结果:
    /usr/bin/env

    去除左右空白 strip()

    strip方法可以删除字符串左右两边的空白字符,但是不包含中间的空白。

    words = " my name is bob "
    print(words.strip())
    打印结果:
    my name is bob

    你也可以传入参数显式指定要删除的字符:

    words = “*****my name is bob”
    print(words.strip(’*’))
    打印结果:
    my name is bob

    如果你不想删除两边的,只想删除某一边的,可以使用lstrip()和rsplip()方法分别删除左边的字符和右边的字符。

    字符串替换 replace()

    words = “my name is bob, my name is bob”
    print(words.replace(‘bob’,‘小明’))
    打印结果:
    my name is 小明, my name is 小明

    回到顶部
    三引号

    会js的应该都知道js中有一个反引号的写法,可以在其中随意写入多行文本,在python中可以用三个引号来做定界符。

    复制代码
    words = ‘’’

    宇宙
    哲学
    电子商务
    互联网
    ''' print(words) 复制代码 打印结果:
    宇宙
    哲学
    电子商务
    互联网
    那如果我要在中间嵌入变量呢?

    复制代码
    name = (‘大学’,‘中学’,‘小学’,‘幼儿园’)
    words = ‘’’

    %s
    %s
    %s
    %s
    ''' print(words % name) 复制代码 打印结果:
    大学
    中学
    小学
    幼儿园
    回到顶部
    判断是否满足特定条件

    纯字母组成 isalpha()

    words = ‘abc’
    print(words.isalpha())
    打印结果:
    True

    纯数字组成 isdigit()

    words = ‘123456’
    print(words.isdigit())
    打印结果:
    True

    字母数字组成 isalnum()

    检测字符串是否全部由字母和数字组成

    words = ‘abcd333’
    print(words.isalnum())
    打印结果:
    True

    纯字母或纯数字或字母数字这三种都为true,除此之外都是false,哪怕有一个空格也是false。

    words = ‘abcd3 33’
    print(words.isalnum())
    打印结果:
    False

    全大写字母 isupper()

    这方法只是针对字符串里面的字母进行判断,如果字符串里面的字母是全部大写,即为true。

    words = ’ ABCDEF123456’
    print(words.isupper())
    打印结果:
    True

    全小写字母 islower()

    words = ’ abc123456’
    print(words.islower())
    打印结果:
    True

  • 相关阅读:
    线段树节点到底开多大
    HDU4901 The Romantic Hero DP
    VIM 配置文件可执行命令
    codeforces159D
    codeforces416B
    codeforces165C
    codeforces332B
    Node.js权威指南 (9)
    iOS-android-windowsphone等移动终端平台开发流程图
    前端面试题细节问题
  • 原文地址:https://www.cnblogs.com/LQZ888/p/13182360.html
Copyright © 2011-2022 走看看