栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

day10字符串和函数基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day10字符串和函数基础

1.r语言

在字符串的最前面加r或者R可以让字符串中所有的转义字符的功能消失 每个字符都会变成普通字符

str1 r C:usernametestdemo.py 
print(str1) # C:usernametestdemo.py
2.字符串格式化

1.字符串拼接

name 小张 
age 19
message name 今年 str(age) 岁 
print(message)

2.格式化字符串

 
语法 包含格式占位符的字符串 % 数据1 数据2 ... 
格式占位符 
%s - 字符串占位符 在Python中可以给任何数据占位 
%d - 整数占位符
%f - 浮点数占位符
%.Nf - 保留N个小数占位符
# 1)%s可以给任何数据类型的数据占位
str1 %s嘻嘻嘻嘻 %([10, 20])
print(str1)
# 2)%d可以给任何能转换成数字的数据占位
str1 %d - xxxx %5
print(str1) # 5-xxxx
str1 %d- xxxx 5.14
print(str1) # 5.14-xxxx
# 3)%f可以给任何能转换成数字的数据占位
str1 %f-wwww %3
print(str1) # 3.000000-wwww
str1 %f-wwww %3.14
print(str1) # 3.140000-wwww
str1 余额—— %.2f %4364
print(str1) # 余额—— 4364.00

3f-string

 
1 基本用法
语法 f {任何有结果的表达式} - 用表达式的结果来填充{}所在的位置
2 加参数
语法 f {r任何有结果的表达式:参数} 
参数 .Nf - 控制小数位数
 - 逗号分隔银行金额的格式
.N% - 显示百分比 将数据转换成百分比 比值保留N位小数
X N:将数据转换成长度为N的字符串 不够在前面用X对应的字符来填充
X N:将数据转换成长度为N的字符串 不够在后面用X对应的字符来填充
# 1)基本用法
str1 f 是哈哈n123 
print(str1) 
name 小张 
age 19
str1 f {name}今年{age}岁 {age*10}-{name[-1]} 
print(str1)
# 2)参数
# a. .Nf
money 2305
str1 f 金额 {money:.2f}元 
print(str1) # 金额 2305.00元 
# b. ,
money 2349000
str1 f 金额 {money:,} 
print(str1) # 金额 2 349 000元
# c.%
rate 0.5
str1 f 市场占有率 {rate:.%} 
print(str1) # 市场占有率 50.000000%
str1 f 市场占有率 {rate:.2%} 
print(str1) # 市场占有率 50.00%
#d. X N X N
# 、 - 决定填充的时候是填在前面还是后面 开口朝那填那边 
# X - 填充字符
# N - 目标长度
num 23
str1 f Python2106{num:0 3} 
print(str1) # Python2106023
3.字符串相关方法

1.字符串.capitalize() - 将字符串首字母转换为大写 其余转换为小写 如果首字母不是大写字母或者不是字母 则不会转

2.center、rjust、ljust、zfill

 
字符串.center(长度 填充字符) - 例如 abc .center(7, x ) - xxabcxx 
字符串.rjust(长度 填充字符) - 例如 abc .rjust(7, x ) - xxxxabc 
字符串.ljust(长度 填充字符) - 例如 abc .ljust(7, x ) - abcxxxx 
字符串.zfill(长度) 字符串.rjust(长度 0 ) - 例如 abc .zfill(7) - 0000abc 
str1 weixiaoqin 
print(str1.center(16, * )) # ***weixiaoqin*** 
print(str1.rjust(16, * )) # ******weixiaoqin 
print(str1.ljust(16, * )) # weixiaoqin****** 
print(str1.zfill(16)) # 000000weixiaoqin 

3.find、index

 
字符串1.find(字符串2) - 获取字符串1中字符串2第一次出现的位置 返回0开始的下标值 如果字符串2不存在返回-1
字符串1.index(字符串2) - 获取字符串1中字符串2第一次出现的位置 返回0开始的下标值 如果字符串2不存在就会报错
字符串1.find(字符串2 开始下边 结束下标)、字符串1.index(字符串2 开始下边 结束下标)index
str1 how are you? i am fine,thank you,and you? 
print(str1.fill( you )) # 8
print(str1.index( you )) # 8
print(str1.find( you , 9, len(str1))) # 29
print(str1.index( you , 9, len(str1))) # 29

5.isdigit、isnumeric

 
字符串1.isdigit() - 判断是否是纯数字字符串 数字指0 ~ 9的数字字符 
字符串1.isnumeric() - 判断是否是纯数字字符串 数字指的是具有数字意义的字符 
print( 1234 .isdigit()) # True
print( 1456 .isnumeric()) # True
print( 23一十百千 .isdigit()) # False
print( 23一十百千 .isnumeric()) # True

6.字符串.islower()、isupper

 
字符串.islower() - 判断字符串是否是纯小写字母字符串
字符串.isupper() - 判断字符串是否是纯大写字母字符串
print( weffd .islower()) # True
print( WFDsdf .islower()) # False
print( AHDHFJ .isupper()) # True
print( ADSDcdd .isupper()) # False

7.(重要) join

 
字符串.join(序列) - 将序列中的元素用指定的字符串拼接成一个新的字符串
注意 序列中的元素必须是字符串
result .join( abc )
print(result) # abc
result , .join( abc )
print(result) # a,b,c
result .join([ 小明 , 张三 , 李四 ])
print(result) # 小明张三李四
result .join([ 小明 , 张三 , 李四 ])
print(result) # 小明 张三 李四
# # 练习1 将列表中的元素合并成一个字符串
# list1 [ abc , 100, 12.5, True, hello ] - abc10012.5Truehello 
list1 [ abc , 100, 12.5, True, hello ]
list2 [str(x) for x in list1]
print( .join(list2))
# 练习2 已知一个列表保存多个学生的分数 提取所有学生的姓名 
# 以一个字符串的形式返回
# [{ name : 张三 , age : 18}, { name : 小明 , age : 20}, { name : 小花 , age : 30}] - 张三,小明,小花 
list1 [{ name : 张三 , age : 18}, { name : 小明 , age : 20}, { name : 小花 , age : 30}]
list2 [x[ name ] for x in list1]
print( , .join(list2))

8.strip、lstrip、rstrip

 
字符串.strip() - 去掉字符串两端的空白
字符串.lstrip() - 去掉字符串左边的空白字符
字符串.rstrip() - 去掉字符串右边的空白字符
str1 tabc 123t 
result str1.strip()
print( ,result, ,sep )
print( ,str1.rstrip(), ,sep )
print( ,str1.lstrip(), ,sep )

9.replace

 
字符串1.replace(字符串2 字符串3) - 将字符串1中的字符串2替换成字符串3
字符串1.replace(字符串2 字符串3 N) - 将字符串1中所有的前N个字符串2替换成字符出3
str1 how are you? i am fine,thank you,and you? 
result str1.replace( you , me )
print(result) # how are me? i am fine,thank me,and me?
result str1.replace( you , me , 2)
print(result) # how are me? i am fine,thank me,and you?

10.maketrans、translate

 
str.maketrans(字符串1 字符串2) - 创建一张字符串1和字符串2的字符对应表 字符串1和字符串2长度必须相同 
str1 how are you? i am fine,thank you,and you? 
table str.maketrans( ain , 你我他 )
result str1.translate(table)
print(result) # how 你re you? 我 你m f我他e,th你他k you,你他d you?

11.rfind、rindex

 
字符串.rfind(字符串2) - 获取字符串1中字符串2从后往前第一次出现的位置 返回0开始的下标值;如果字符串2不存在返回-1
str1 how are you? i am fine,thank you,and you? 
print(str1.rfind( you )) # 37
print(str1.find( you )) # 8
print(str1.rindex( you )) # 8
print(str1.index( you )) # 37

12.splict

 
字符串1.splict(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串进行切割 返回一个新的列表 切割点切完后将不存在
str1 how are you? i am fine,thank you,and you? 
result str1.splict( an ) 
print(result) # [ how are you? i am fine,th , k you, , d you? ]
result str1.splict( you )
print(result) #[ how are , ? i am fine,thank , ,and , ? ]

注意· 如果切割点在最前面或者最后面或者出现连续的切割点 结果会出现空串

str4 amnayouaa a123aklpa 
print(str4.splict( a )) # [ , mn , you , , , 123 , klp , ]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号