Python字符串常用操作篇(上)

一、字符串的基础认识

1、概念

字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列

2、引号的使用

Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串,注意:成对出现

(1)单引号代码例子
str1 = 'hello'
str1
str1 = 'hello \
 hello \
 hello'
str1

 (2)双引号代码例子
str1 = "hello"
str1
str1 = "hello \
 hello \
 hello"
str1

(3)三引号代码例子
str1 = ''''hello
 hello
 hello'''
str1
str1 ="""hello
 hello
 hello"""
str1

(4)引号嵌套:定义字符串时单引号与双引号可以嵌套使用,

注意:使用双引号表示的字符串中允许嵌套单引号,但不允许包含双引号,同样,使用单引号表示的字符串中不允许包含单引号

①双引号嵌套单引号

str1 = "'hello'"
str1
②单引号嵌套双引号
str1 = '"hello"'
str1

 3、let's go的表示

(1)通过引号嵌套实现

str4 ="let's go"   
str4
(2)反斜杠“\”转义:在字符串中的引号前添加“\”,解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号
str4 = 'let\'s go'       #通过反斜杠“\”转义,“\”之后的字符视为普通字符,而非特殊符号
str4

 4、转义字符

(1)转义字符:由“\”和具有特殊意义的字符组成(一些普通字符与反斜杠组合后会失去原有意义,产生新的含义)

(2)转移字符通常用于表示一些无法显示的字符,例如空格、回车等等

转义字符 功能说明
\b 退格(Backspace)
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
(2)字符串 'let\'n learn Python'的表达


str4 = 'let\n learn Python'
str4

(3)字符串D:\Users\User\Desktop\ppt的表达

①方法一

str2 = "D:\\Users\\User\\Desktop\\ppt"
print(str2)
②方法二
str2 = "D:/Users/User/Deskto/ppt"
str2
③方法三
str2 = r"D:\Users\User\Desktop\ppt"
str2

二、字符串的格式化


1、%格式化字符串

(1)格式:"xxxxxx %s xxxxxx %s" % (value1, value2)

①value1,value2值:被格式化为字符类型

②%s就是格式化符,也是占位符,不论是字符还是数值,都会被格式化为格式化符对应的类型


(2)使用说明

①Python将一个带有格式符的字符串作为模板,使用该格式符为真实值预留位置,并说明真实值应该呈现的格式

name = "李强"
print("你好,我叫%s" % name)
②一个字符串中可以同时包含多个占位符
age = 12
print("你好,我叫%s, 今年我 %d 岁了" % (name,age))

(3)不同的占位符为不同类型的变量预留位置,常见的占位符,如下所示:

 (4)注意:使用占位符%时变量的类型,若变量类型与占位符不匹配程序会产生异常
age = '12'
print("你好,我叫%s, 今年我 %d 岁了" % (name,age))

%虽然强大,但用起来难免有些麻烦,代码也不是特别美观,所以,在python 2.5 之后,提供了更加优雅的str.format()方法🧐

2、str.format()方法格式化字符串

(1)使用format()方法格式化字符串,无需关注变量的类型


 (2)使用说明

①使用名称占位符

s2 = "年龄 {age} 名字 {name}".format(age=18, name="张三")
print(s2)  # xxxx 18 xxxx hangman

②若字符串中包含多个没有指定序号(默认从0开始)的“{}”,则按 “{}”出现的顺序分别用format ()方法中的参数进行替换,否则按照序号对应的format ()方法的参数进行替换
# 使用序号占位符,为空默认从左到右01234.。。
value1 = 123
value2 = 456
s3 = "xxxx {1} xxx{0}".format(value1,value2)
print(s3)  # xxxx [9, 0] xxx(7, 8)
s3 = "xxxx {}".format(value1)
print(s3)  # xxxx [9, 0] xxx(7, 8)
# 也可以混合使用
s4 = "xxxx {} XXX {name} xxx {}".format(value2,value1,name="s4")
print(s4) 

(3)拓展用法


① format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息

②槽的内部样式 {<参数序号>: <格式控制标记>}

<格式控制标记>:用来控制参数显示时的格式

包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用


# 0表示format()方法的参数下标,对应于第一个参数,可不指定,默认从0开始
# .4f表示格式化为实数,保留4位小数
print('{0:10.4f}'.format(10/3))
print('{0:.2%}'.format(1/3))
print('{:.2%}'.format(1/3))

③对齐方式

# 格式化为百分数字符串,总宽度为10,保留2位小数,>表示右对齐 <表示左对齐   ^表示居中对齐
print('{0:>10.2f}'.format(1/3))
print('{0:<10.2}'.format(1/3))
print('{0:^10.2}'.format(1/3))

3、f-string格式化字符串

(1)f-string的介绍:它是2015年python 3.6根据PEP498新添加的一种字符串格式化方法

(2)f-string的用法:它是一个文字字符串,前缀为’f’,其中包含大括号内的表达式,表达式会将大括号中的内容替换为其值


# 字符串前面加字符f,Python 3.6之后的版本支持这种用法
width = 8
height = 6
print(F'Rectangle of {width}*{height}\n Area:{width*height}')
print(f'{width}')
name = '申小兮'
age = 20
gender = '女'
f'我的名字是{name},今年{age}岁了,我的性别是:{gender}。'

 三、字符串的运算

1、520+1314 和"520”+“1314"—样吗?

(1)显然是不一样的,+ 表示字符串的拼接表示字符串的重复

(2)代码展示

print(520+1314)
print("520"+"1314")

2、文本进度条

import time
scale = 10
print("----执行开始----")
for i in range(scale+1):
    a = "*" * i      #'*'重复i次
    b = '.' * (scale - i)   #.重复(scale-i)次
    c = i/scale * 100
    print("\r{:3.0f}%[{}{}]".format(c,a,b),end="")   #^指居中对齐,3指输出宽度为3;.0f指保留0位小数e
    time.sleep(0.1)            #循环每执行一次休眠0.1s
print("\n----执行结束----")

 四、字符串对象

 1、字符串字符串属于不可变对象,所有方法都是返回处理后的字符串或字节串,均不对原字符串进行任何修改

str1 = "1234"
str1[1]

str1[1] = '3'

具体的对象方法使用,将在下篇介绍🧐

Python 文章被收录于专栏

Python概述及应用领域,PyCharm、Jupyter notebook的安装与使用,编码规范,标准库、扩展库对象的导入与使用

全部评论
通俗易懂啊,感谢楼主分享,学到了
点赞 回复 分享
发布于 2022-10-25 21:17 山西

相关推荐

09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
09-22 15:45
门头沟学院 Java
谁给娃offer我给...:我也遇到了,我说只要我通过面试我就去,实际上我根本就不会去😁
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务