Python基础教程(第3版)中文版 第三章 使用字符串(笔记)

                           第3章 使用字符串

 

1.字符串基本操作


所有标准序列操作(索引、切片、成员资格检查、长度、最小值和最大值)都适用
#字符串不可变,因此不能对字符串元素赋值。


2.设置字符串的格式:精简版


(1)以前使用%设置字符串格式#类似与C的printf:
在%左边指定一个字符串,在右边指定要设置其格式的值(可以是单个值、元组、字典)。
例:
format = "hello, %s, %s enough for ya?"
values = ('world', 'hot')
format % values 
结果输出
>>>'hello, world, hot enough for ya?'
其中 %s 是转换说明符,指出将值插入的地方。
s将值视为字符串进行格式设置。
(2)另一种方法是使用模版字符串。
from string import Template
tp = Template("Hello,$who!")
tp.substitute(who="GM")

!!!编写新代码时,应使用字符串方法 format
替换字段用花括号{}扩起,({}中可能包含名称和格式设置的信息)
例子:"{}, {} and {}".format("first", "second", "third")
得到:'first, second and third'
 "{3} {0} {2} {1} {3} {0}".format("be", "not", "or", "to")
得到:'to be or not to be' 
"{name} is approxiamtely {value:.2f}.".format(value=pi, name = "π")
得到'π is approxiamtely 3.14.'
#.2f 是格式说明符,使用:与字段名隔开
表示两位小数的浮点数
# python3.6种,如果变量与替换字段同名,可以使用另一种简写:
使用f字符串 ----字符串前面加f
如:
from math import e
f"Euler's constant is roughly {e}."
#与"Euler's constant is roughly {e}.".format(e=e) 等价

3. 设置字符串的格式:完整版


基本方法是对字符串调用方法 format并提供要设置格式的值。


字符串包含有关如何设置格式的信息
每个值都被插入字符串中 替换{}扩起的替换字段。
#要在最终结果包含{}可使用双 花括号
例子:"{{ -...- }}".format()
得到'{ -...- }'
替换字段
  替换字段由 字段名、转换标志、格式说明符组成,其中每个部分都是可选的。
  字段名:索引或标识符,指出要设置哪个值的格式 并替换该字段。 还可指定值的特定部分(如列表的元素)
  转换标志:跟在叹号 后面的单个字符。如
    r(repr)、s(str)、a(ascii)。如果指定了转换标志,将使用指定函数将对象转换为字符串
  格式说明符:跟在冒号 后面的表达式。格式说明符让我们能够详细地指定最终的格式。包括格式类型、宽度、精度  ,显式符号和千位分     隔符、对齐和填充方式。


替换字段名
1.给format提供未命名参数,将按顺序匹配
"{} {}".format(1,2) 
得到:'1,2'
2. 给参数指定名称,替换相应字段。
"{two},{one}".format(one=1,two=2)
得到:'2,1'
3.使用索引指定相应参数
"{1} {0}".format("be","to")
得到:'to be'
4.可提供值的组成部分
names = ["al","be"]
"Mr {names[1]}".format(names=names)
得到'Mr be'

基本转换

转换标志:
1.提供转换标志
 print("{pi!s} {pi!r} {pi!a}".format(pi="π"))
 得到:π 'π' '\u03c0'


使用格式说明符:


2.指定转换的值的类型
 "The number is {num:f}".format(num=42)
得到'The number is 42.000000' 

3.宽度、精度和千位分隔符
"{num:10}".format(num=3) #设置num宽度为10
得到:'         3'
"{pi:10.2f}".format(pi=pi)
#设置精度,使用 .精度 来设置 f指定了类型为浮点数
得到:'      3.14'
"One googol is {:,}".format(10**100)
#使用, 指出添加千位分隔符
#同时指定其他格式设置元素时,这个逗号应放在宽度和表示精度的句点之间
得到:“'One googol is 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000'

4.符号、对齐和用0填充
在宽度和精度前,可添加一个标志(0,+,-,空格等)
0表示用0填充
< > ^ 设置左对齐、右对齐、居中
#可使用填充字符来扩充对齐说明符,如"{:$^15}" 将使用$填充缺少的位
= 指定填充字符放在符号和数字之间。
+ 给正数加符号
# 在符号说明符和宽度之间,给二进制、八进制、十六进制加上前缀.


字符串方法
1.center 两边填充字符,让字符居中
2.find   查找子串,有则返回第一个索引,无则返回-1
3.join 合并序列的元素(字符串)
4.lower 小写
5.replace 替换
6.split 拆分
7.strip 删除头尾的空白
8.translate 替换 同时替换多个字符 使用前需要创建转换表table = str.maketrans('cs','kz')#c-k s-z  提供第3个参数删除指定的字母
9.判断字符串
isspace,isdigit,isupper......

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只大鸽子

如有帮助,欢迎关注同名公众号

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

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

打赏作者

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

抵扣说明:

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

余额充值