在字符串的最前面加r或者R 可以让字符串中所有的转义字符的功能消失 每个符号都会变成普通字符
str1 r C:usersnametestdemo.py print(str1)二、字符串格式化
name 小明 age 18 message xxx今年xx岁 message name 今年 str(age) 岁 print(message) # 小明今年18岁
方法二 格式字符串
message %s今年%d岁 % (name, age) print(message) # 小明今年18岁
方法三 f - string
message f {name}今年{age}岁
print(message) # 小明今年18岁
1、格式字符串
语法 包含格式占位符字符串%(数据1, 数据2, …)
格式占位符
%s - 字符串占位符
%d - 整数占位符
%f - 浮点数占位符 保留六位小数
%.Nf - 浮点数保留N位小数
str1 %sfnejwknf % ( 你好 ) print(str1) # 你好fnejwknf str1 %sxxx % ([10, 20]) print(str1) # [10, 20]xxx 2 %d可以给任何能转换成整数的数字数据占位 str1 %dxxxx % 23 print(str1) # 23xxxx 3 %f可以给任何能转换成浮点数的数字数据占位 str1 %fxxxx % 3.43 print(str1) # 3.430000xxxx str1 余额 %.2f % 34325 print(str1) # 余额 34325.00 str1 %s今年%d岁 月薪 %.2f % ( 牛牛 , 24, 10000) print(str1) # 牛牛今年24岁 月薪 10000.002、f-string 1 基本用法
语法 f’{任何有结果的表达式}’
2 加参数语法 f’{任何有结果的表达式:.Nf}’
参数
.Nf - 控制小数位数
, - 逗号分隔银行金额的格式
.N% - 将数据转换成百分比 比值保留N位小数
X N - 将数据转换成长度为N的字符串 不够在前面用X对应的字符来填充
X N - 将数据转换成长度为N的字符串 不够在后面用X对应的字符来填充
str1 f 你好
print(str1) # 你好
str1 f 姓名 {name}t年龄 {age}
print(str1) # 姓名 小明 年龄 18
2、参数
a、.Nf
money 2445
str1 f 金额 {money:.2f}
print(str1) # 金额 2445.00
b、,
money 4355352
str1 f 余额 {money:,}
print(str1) # 余额 4,355,352
c、%
rate 0.5
str1 f 市场占有率 {rate:.2%}
print(str1) # 市场占有率 50.00%
d、X N X N
X - 填充字符
X - 目标长度
num 5
str1 f Python2106{num:0 3}
print(str1)
str1 f Python2106{num:好 2}
print(str1)
三、字符串相关方法
1、center、rjust、ljust、zfill
字符串.center(长度,填充字符)
字符串.rjust(长度,填充字符)
字符串.ljust(长度,填充字符)
字符串.zfill(长度) 字符串.rjust(长度, ‘0’)
print( abc .center(7, s )) # ssabcss print( abc .rjust(7, s )) # ssssabc print( abc .ljust(7, s )) # abcssss print( abc .zfill(7)) # 0000abc2、count
字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数
字符串1.count(字符串2, 开始下标, 结束下标) - 在开始下标到结束下标 取不到 开区间 对应的范围内统计的字符串2出现的次数
str1 abcdefjabdghal print(str1.count( a )) # 3 print(str1.count( a , 0, 9)) # 23、find、index、rfind、rindex
字符串1.find(字符串2) - 获取字符串1中字符串2第一次出现的位置 返回0开始的下标值 如果字符串2不存在返回-1
字符串1.index(字符串2) - 获取字符串1中字符串2第一次出现的位置 返回0开始的下标值 如果字符串2不存在报错
字符串1.find
str1 abcdefjabdghal print(str1.find( g )) # 10 print(str1.index( g )) # 10 print(str1.find( g1 )) # -1 print(str1.index( g1 )) # 报错 print(str1.find( g , 0, 8)) # -1 print(str1.index( g , 0, 11)) # # 10 print(str1.rfind( g )) # 10 print(str1.rindex( g )) # 104、isdigit、isnumeric
字符串.isdigit() - 判断是否是纯数字字符串 数字指0~9的数字字符
字符串.isnumeric() - 判断是否是纯数字字符串 数字指具有数字意义的字符
print( 3141515 .isdigit()) # True print( 1241415 .isnumeric()) # True print( 3141515一 .isdigit()) # False print( 3141515一百 .isnumeric()) # True5、islower、isupper
字符串1.islower() - 判断字符串是否是纯小写字母字符串
字符.islower() - 判断是否是小写字母
字符串1.isupper() - 判断字符串是否是纯大写字母字符串
字符.isupper() - 判断是否是大写字母
print( safaf .islower()) # True print( FSSFA .isupper()) # True6、join
字符串.join(序列) - 将序列中的元素用指定的字符串拼接成一个新的字符串
注意 序列中的元素必须是字符串
result .join( abc ) print(result) # a b c result .join([ 小明 , 牛牛 , 瓦塔 ]) print(result) # 小明 牛牛 瓦塔 result .join([2, 4]) # 报错
练习、将列表中的元素合并成一个字符串
[ abc , 100, 12.5, True, hello ] - abc10012.5Truehello list1 [ abc , 100, 12.5, True, hello ] result .join((str(x) for x in list1)) print(result)
练习2 已经一个列表保存多个学生的分数 提取所有学生的姓名 以一个字符串的形式返回
[{‘name’:‘张三’, ‘age’: 18}, {‘name’:‘小明’, ‘age’: 20}, {‘name’:‘小花’, ‘age’: 30}] - ‘张三,小明,小花’
students [{ name : 张三 , age : 18}, { name : 小明 , age : 20}, { name : 小花 , age : 30}]
result , .join(x[ name ] for x in students)
print(result)
7、strip、lstrip、rtrip
字符串.strip() - 去掉字符串两端的空白字符
字符串.lstrip() - 去掉字符串前面的空白
字符串.rstrip() - 去掉字符串后面的空白
str1 tabc 123 n result str1.strip() print( , result, , sep ) # abc 123 result str1.lstrip() print( , result, , sep ) # abc 123 result str1.rstrip() print( , result, , sep ) # abc 1238、replace
字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2替换成字符串3
字符串1.replace(字符串2, 字符串3, N) - 替换前N个
str1 abcdefjabdghal result str1.replace( a , u ) print(result) # ubcdefjubdghul result str1.replace( a , u ,2) print(result) # ubcdefjubdghal9、maketrans、translate
str.maketrans(字符串1, 字符串2) - 创建一张字符串1和字符串2的字符对应表
字符串.translate(表)
table str.maketrans( abc , 你好吗 ) str1 abcdefjabdghal result str1.translate(table) print(result) # 你好吗defj你好dgh你l
练习 将字符串中所有的阿拉伯数字都替换成对应的中文数字
123木头人, 88 - 一二三木头人, 八八 table str.maketrans( 0123456789 , 零一二三四五六七八九 ) str1 123木头人, 88 result str1.translate(table) print(result)10、split
字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串进行切割
str1 abcdefjabdghal result str1.split( a ) print(result) # [ , bcdefj , bdgh , l ]
注意 如果切割点在最前面或者最后或者出现连续的切割点 结果会出现空串
四、认识函数和定义函数 1、认识函数 1 概念 函数就是对实现某以特定功能的代码的封装 2 函数的分类a、系统函数 系统造好的机器 - 有Python创建好的函数 例如 print、input、type、max …
b、自定义函数 自己造机器 - 由程序员自己创建的函数
语法
def 函数名(形参列表):
函数说明文档
函数体
说明
a、def - 关键字 固定写法
b、函数名 - 由程序员自己命名
要求 是标识符 不能是关键字
规范 见名知义 看到函数名大概指定这个函数的功能是什么
所有字母都小写 多个单词之间用下划线隔开
不能使用系统函数名、类别、模块名。
c、() - 固定写法
d、形参列表 - 以’变量名1, 变量名2, 变量名3,… 格式存在 这的每个变量就是一个形参 如果不需要形参 括号里什么都不用写
形参是用来将函数外部的数据传递到函数内部。 可以理解成连接函数外部和函数内部的通道
需不需要形参就看实现函数的功能需不需要额外的数据
e、: - 固定写法
f、函数说明文档 - 本质就是文档注释
g、函数体 - 和def保持一个缩进的一条或者多条语句
函数体就是实现函数功能的代码



