Python基础-字符串,你确定不点进来看吗

目录

字符串格式化
百分号占位
模板字符串
format格式化
f字符串
常用方法
字符串居中 center()
查找字符串 find()
大小写转换 upper、lower、title
打散字符串 split()
序列合并字符串 join()
去除左右空白 strip()
字符串替换 replace()
三引号
判断是否满足特定条件
纯字母组成 isalpha()
纯数字组成 isdigit()
字母数字组成 isalnum()
全大写字母 isupper()
全小写字母 islower()
结语

回到顶部
字符串格式化

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

百分号占位

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

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

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

模板字符串

from string import Template
tmp1 = Template(‘你好 我是 n a m e , 我 今 天 挣 了 name,我今天挣了 namenum元钱’)
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 = ‘’’

  • ''' 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

    回到顶部
    结语

    还有很多零零散散小概率使用的东西,也不知道怎么编排进来,也就算了。

    所有序列的标准操作,包括索引、加法、乘法、切片、查找、长度、最大最小值都可以用在字符串上。

    但是字符串是不可变的,所以所有的元素赋值和切片赋值都是不可用的。

    另外一点,就是如果字符串要加一个数字,那么你会发现程序会报错,这种情况需要做类型转换,可以使用str()方法将数字转为字符串。

猜你喜欢

转载自blog.csdn.net/waitingwww/article/details/106911024