Python快速编程入门#学习笔记04# |第四章 :字符串 (%格式化符号、format()格式化字符串、f-string格式化字符串及字符串的常见操作)


先导知识:

开发环境及Git 的配置与排错:


学习目标
  • 掌握 字符串的定义方法
  • 掌握 字符串的格式化
  • 熟悉 字符串的常见操作

4.1 字符串介绍

在这里插入图片描述

字符串是由字母符号或者数字组成的字符序列。

字符串是 Python 中最常见的数据类型。一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

在这里插入图片描述

创建字符串 示例代码 :

# 认识字符串

# 字符串是 Python 中最常见的数据类型。一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
# 字符串是由字母、符号或者数字组成的字符序列。
# 创建字符串
a = 'hello world'
b = "abcdefghijkmln"
print(type(a))
print(type(b))

# 注意:控制台显示输出结果为 <class'str'> ,即 数据类型为str(字符串)

# 1.1 字符串的特征

# 一对引号字符串

name1 = 'Tom'   # 单引号
name2 = "Rose"  # 双引号

# 三引号字符串

name3 = """" ROSE """
name4 = '''Tom'''
word = '''i am Tom ,
            nice to meet you!'''


print(name1)
print(name2)
print(name3)
print(name4)
print(word)

注意:
1、控制台显示输出结果为 <class’str’> ,即 数据类型为str(字符串)
2、三引号字符串支持换行

在这里插入图片描述

思考: 如何创建字符串 I'm Tom

#  word2 = 'I'm Tom''    # 如何按照英语语法中的格式书写I am 的缩写 I'M 中的撇
#  转义字符 换行符:\n    ;   制表符:\t  为一个tab键(4个空格)的距离

 word3 = "I'm Tom"    # 第一种方法是用双引号,中间的那一撇' 就不会出现了
 word2 = 'I\'m Tom'   # 第二种方法是用转义字符 反斜杠 \
 print(word3)
 print(word2)
转义字符

一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由“\”和而成的、具有特殊意义的字符就是转义字符。转移字符通常用于表示一些无法显示的字符,例如空格、回车等。

在这里插入图片描述
在这里插入图片描述

从左上到右下的斜杠 \ 称之为 反斜杠
从右上到左下的斜杠 /称之为斜杠

  • 换行符:\n ;
  • 制表符:\t 为一个tab键(4个空格)的距离

思考:
为什么变量输出行数 print( ) 输出会自动换行?

因为 print() 函数中 参数 end:用于设定输出以书面结尾,默认值为换行符号 \n

# 输出默认换行
print("要输出的内容") 
print("要输出的内容",end="\n")  # 


# 若不想输出换行
 print("要输出的内容",end=" ") 


示例代码:

a = 'hello'
b = 'world!'
c = 'helloworld!'
print(a)                # 输出 变量a 中的字符串: hello
print(b)                # 输出 变量b 中的字符串: world!
print(c)                # 输出 变量c 中的字符串: helloworld!
print(a, end='')        # 输出 hello 后 不换行
print(b, end='\n')      # 输出 world 后 换行
print('\thelloworld')   # 控制台输出前空4格

输出结果如下:
在这里插入图片描述

4.2 格式化字符串
使用%格式化字符串

字符串具有一种特殊的内置操作,它可以使用%进行格式化

在这里插入图片描述

  • format 表示一个字符串,该字符串中包含单个或多个为真实数据占位的格式符;
  • values 表示单个或多个真实数据;
  • %代表执行格式化操作,即将format中的格式符替换为values。

不同的格式符为不同类型的数据预留位置,常见的格式符如下所示 :

在这里插入图片描述
在PyCharm 中代码演示%格式化操作,示例代码如下:

'''
1. 准备数据
2.格式化符号输出数据
'''

# 1. 今年我的年龄是x岁

# 2. 我的名字是x

# 3. 我的体重是x公斤

# 4. 我的学号是x

# 组合格式化内容
# 5. 我的姓名是x. 今年x岁了

# 6. 我的姓名是x. 今年x岁了. 体重x公斤. 学号是x


'''**********************分*割*线*********************************'''

# 1. 准备数据
age = 18
name = 'Tom'
weight = 60.5
stu_id = 1
# 2. 格式化符号输出数据
# 1. 今年我的年龄是x岁 -- 整数 %d
print("今年我的年龄是x岁")
print("今年我的年龄是%d岁" % age)

# 2. 我的名字是x -- 字符串 %s
print('我的名字是TOM')
print('我的名字是%s' % name)

# 3. 我的体重是x公斤 --浮点型 %f
print('我的体重是x公斤')
print('我的体重是%f' % weight)      # 默认保留6位小数
print('我的体重是%.2f' % weight)    # %与f之间 加.2 保留2位小数
# 小技巧:%.2f 表示小数点后显示的小数位

# 4. 我的学号是x
print('我的学号是x')
print('我的学号是%d' % stu_id)
print('我的学号是%06d' % stu_id)
# 小技巧:%06d 表示输出的整数显示位数,不足以0不全,超出当前位数则原样输出

# 组合格式化内容
# 5. 我的姓名是x. 今年x岁了
print('我的姓名是x, 今年x岁了')
print('我的姓名是%s,今年%d岁了' % (name, age))
# 6. 我的姓名是x. 今年x岁了. 体重x公斤. 学号是x
print('我的姓名是x,今年x岁了,体重x公斤,学号是x')
print('我的姓名是%s,今年%d岁了,体重%.2f公斤,学号是%d' % (name, age, weight, stu_id))

小技巧:
1、%.2f 表示小数点后显示的小数位
2、%06d 表示输出的整数显示位数,不足以0不全,超出当前位数则原样输出

输出结果如下:

在这里插入图片描述

使用format()方法格式化字符串

虽然使用%可以对字符串进行格式化,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()

在这里插入图片描述

  • str 表示需要被格式化的字符串 变量,字符串中包含单个或多个为真实数据占位的符号{}
  • values 表示单个或多个待替换的真实数据,多个数据之间以逗号分隔。

方法一:字符串中可以包含多个{}符号,字符串被格式化时Python解释器默认会按 从左到右的顺序 将{}逐个替换为真实的数据.

示例如下:

name = '张倩'
age = 25
string = "姓名:{} \n 年龄:{}"       # 定义string字符串,{}位置为数据的占位符号 ;\n表示换行输出
print(string.format(name, age))    # name ,age 传递到对应的占位符{}中

输出结果如下:
在这里插入图片描述

方法二:字符串的{}中可以明确地指定 编号,格式化字符串时解释器会按编号取 values 中相应位置的值替换{},values中元素的 索引从0开始

示例代码如下:

name = '张倩'
age = 25
# string = "姓名:{}\n年龄:{}"       # 定义string字符串,{}位置为数据的占位符号
# print(string.format(name, age))    # name ,age 传递到对应的占位符{}中

# 编号
string = "姓名:{1}\n年龄:{0}"
print(string.format(age, name))     # 编号从0 开始 0 ,1,2,3

方法三:字符串的{}中可以 指定名称 ,字符串在被格式化时Python解释器会按真实数据绑定的名称替换{}中的变量。

示例代码:

# 指定名称
name = '张倩'
age = 25
weight = 65
string = "姓名:{name} \n 年龄:{age} \n 体重:{weight}kg"
print(string.format(name=name, weight=weight, age=age))

变量传递关系图:
在这里插入图片描述

推荐:使用f-string格式化字符串

f-string 提供了一种更为简洁的格式化字符串的方式,它在形式上以fF引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。

格式:f "{表达式}" 或者 F ‘{表达式}’

示例程序:

name = '张倩'
age = 25
print("我的名字是%s,我的年龄是%d" % (name, age))
print(f'我的名字是{name},我的年龄是{age}')

f '{表达式}' 格式化字符串是Python3.6 中新增的格式化方法,该方法相对于% 格式化字符串 和 str. format() 格式化字符串更简单易读, 且高效,推荐大家使用此方法格式化字符串。

4.3 实训案例
实例训练1 :进制转换

在这里插入图片描述

十进制是实际应用中最常使用的计数方式,除此之外,还可以采用二进制、八进制或十六进制计数。
本实例要求编写代码,实现将用户输入的十进制整数转换为指定进制的功能。

Python进制转换函数及其功能说明:

函数说明
bin(x)将x转换为二进制数据
oct(x)将x转换为八进制数据
int(x)将x转换为十进制数据
hex(x)将x转换为十六进制

进制转换效果如下:

在这里插入图片描述

实例训练2:文本进度条

进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示任务的完成度。
本实例要求编写程序,实现如图所示的文本进度条。

在这里插入图片描述

文本进度条效果如下:

在这里插入图片描述

4.4 字符串的常见操作
字符串的查找与替换
find() 字符串查找函数

语法格式:

字符串序列.find( 子串 , 开始位置下标, 结束位置下标)

注意:开始位置和结束位置的下标可以省略,表示在整个字符串序列中查找。

示例代码如下:

my_str = "c and java and python and c++ and php"

# find()
print(my_str.find("and"))           # 查找 字符串my_str中的 'and', 返回查找到的第一个'and'的首字母的下标 2
print(my_str.find("and", 5, 30))    # 查找 字符串 my_str 中 5~30 之间的 'and' , 返回下标 11
print(my_str.find("ands"))          # 查找 字符串 my_str 中的 "ands" , 若查找到返回对应的下标,若没有查找到 返回 -1

运行程序,输出结果如下:

在这里插入图片描述

index()字符串查找函数

语法格式:

字符串序列. index ( 子串 , 开始位置下标, 结束位置下标)

示例代码如下:

my_str = "c and java and python and c++ and php"

# index()  字符串查找
print(my_str.index("and"))           # 查找 字符串my_str中的 'and', 返回查找到的第一个'and'的首字母的下标 2
print(my_str.index("and", 5, 30))    # 查找 字符串 my_str 中 5~30 之间的 'and' , 返回下标 11
print(my_str.index("ands"))          # 查找 字符串 my_str 中的 "ands" , 若没有查找到 报错

输出结果如下:

在这里插入图片描述

count()统计字符串函数

作用:返回某个子串在字符串中出现的次数。

示例代码如下:

my_str = "c and java and python and c++ and php"

# count() 计数函数
print(my_str.count("and"))           # 查找 字符串my_str中的 'and', 返回查找到的第一个'and'的首字母的下标 2
print(my_str.count("and", 5, 37))    # 查找 字符串 my_str 中 5~30 之间的 'and' , 返回下标 11
print(my_str.count("ands"))          # 查找 字符串 my_str 中的 "ands" , 若没有查找到 报错

输出结果如下:
在这里插入图片描述

  • rfind():和find() 功能相同,但是查找方向为右侧开始
  • rindex(): 和index() 功能相同,但时查找方向为右侧开始
  • count() : 返回某个子串在字符串中出现的 次数(计数)
replace() 字符串替换函数

语法: 字符串序列.replace(旧子串, 新子串, 替换次数 )

注意:替换次数可以省略,默认为字符串序列中所有的子串出现次数
`

示例代码:

# replace() 字符串替换函数
# 语法: 字符串序列.replace(旧子串, 新子串, 替换次数 )
# 注意:替换次数可以省略,默认为字符串序列中所有的子串出现次数

# 示例代码
my_str = "c and java and python and c++ and php"
new_str1 = my_str.replace("and", "or")      # 替换字符串my_str中所有的 "and" 为 "or", 并将replace返回的新字符串赋值给new_str1
new_str2 = my_str.replace("and", "or", 1)   # 替换字符串my_str中的第一个"and" 为"or", 并将replace返回的新字符串赋值给new_str2
print(my_str)                               # 打印输出原来的字符串 
print(new_str1)
print(new_str2)

输出结果:

在这里插入图片描述

总 结
1、 字符串是不可变数据类型
2、数据是否可以改变划分为两大类:可变类型(列表……)和不可变类型(字符串)

字符串的分隔与拼接
split()字符串分割函数

语法: 字符串序列.split("分割字符" ,分割次数)

示例代码:


# split() 字符串分割函数. 返回一个列表,丢失分割字符
# 语法:字符串序列.split("分割字符" ,分割次数)
my_str = "c and java and python and c++ and php"

ls1 = my_str.split("and")
print(ls1)
ls2 = my_str.split("and", 3)
print(ls2)

输出结果:

在这里插入图片描述

join()字符串合并拼接函数

示例代码:

功能:合并拼接列表里面的字符串数据为一个大字符串

语法格式:字符或子串. join(多字符串组成的序列)

# join() --合并拼接列表里面的字符串数据为一个大字符串
my_list = ['aa', 'bb', 'cc', 'dd']
new_str = '+++'.join(my_list)
print(my_list)
print(new_str)

输出结果:
在这里插入图片描述

删除字符串的指定字符
strip() 字符串删除函数
  • lstrip( ) :删除字符串左侧空白字符

  • rstrip( ) :删除字符串右侧空白字符

  • strip( ) : 删除字符串两侧空白字符

示例代码:

my_str = "  this is a test! "
print(my_str)

# lstrip() -- 删除左侧空白字符
new_str1 = my_str.lstrip()
print(new_str1)

# rstrip() -- 删除右侧空白字符
new_str2 = my_str.rstrip()
print(new_str2)

# strip()
new_str3 = my_str.strip()
print(new_str3)

输出结果:

在这里插入图片描述

字符串大小写转换
capitalize()title()lower()upper()字符串大小写转换函数

示例代码:

my_str = "this IS a test!"
print(my_str)

# capitalize() -- 将字符串第一个字符转换成大写

print(my_str.capitalize())

# title() -- 将字符串每个单词首字母转换成大写
print(my_str.title())

# lower() -- 将字符串中的大写转换成小写
print(my_str.lower())

# upper() -- 将字符串中的小写转换成大写
print(my_str.upper())

输出结果:

在这里插入图片描述

字符串对齐
ljust()rjustcenter 左对齐,右对齐和居中

语法格式: 字符串序列.ljust(长度,填充字符)

示例代码:


# just() 字符串对齐函数
# 语法格式: 字符串序列.[l,r,c]just(长度,填充字符)

my_str = " hello "
# ljust() -- 左对齐
print(my_str.ljust(10))             # 打印输出左对齐的"hello" ,空白处以空格填充

# rjust() -- 右对齐
print(my_str.rjust(10, '_'))        # 右对齐,空白处用'_' 填充

# center() -- 居中对齐
print(my_str.center(10,'_'))

输出结果:

在这里插入图片描述

4.5 实训案例
实训案例1:敏感词替换

敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语,对于文章中出现的敏感词常用的处理方法是使用特殊符号(如“*”)对敏感词进行替换。

本实例要求编写代码,实现具有替换敏感词功能的程序。

在这里插入图片描述

实训案例2:文字排版工具

文字排版工具是一款强大的文章自动排版工具,它会将文字按现代汉语习惯及发表出版要求进行规范编排。文字排版工具一般具备删除空格英文标点替换英文单词大写功能。

本实例要求编写代码,实现具有上述功能的文字排版工具。

在这里插入图片描述


划重点
1、《Python快速入门》配套视频、源代码、习题、教学课件等资源8G学习资料百度网盘下载链接>>点击这里 << ,获取密码>>点击这里<<。
2、本章示例代码>>点击这里<<

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Python字符串格式化有两种方法:使用符号操作%和使用format格式。 使用符号操作%是一种传统的字符串格式化方法。它使用%作为占位符,然后通过一个或多个变量来填充这些占位符。示例如下: ```python name = "Alice" age = 25 print("My name is %s and I am %d years old." % (name, age)) ``` 这里,%s表示字符串占位符,%d表示整数占位符。在字符串末尾的%后面,以元组的形式传递了两个变量name和age。 另一种格式化字符串的方法是使用format函数。这种方法使用花括号{}来表示占位符,并使用format函数来填充这些占位符。示例如下: ```python name = "Bob" age = 30 print("My name is {} and I am {} years old.".format(name, age)) ``` 这里,{}表示占位符。在format函数中依次传入了name和age变量。 这两种方法在功能上是相似的,但使用的语法不同。使用符号操作%可以更灵活地控制格式化的输出,而使用format函数可以提供更多的格式化选项,例如指定输出的宽度、精度和对齐方式。 需要注意的是,从Python 3.6开始,还引入了一种新的字符串格式化语法,称为f-string。它以f开头,使用花括号{}来表示占位符,并在其中通过变量名直接引用变量的值。示例如下: ```python name = "Charlie" age = 35 print(f"My name is {name} and I am {age} years old.") ``` 这种方法在语法上更简洁,同时仍然提供了丰富的格式化选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naiva

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值