本文为《疯狂Python讲义》的自习阅读笔记
字符串
字符串格式化
Python 可以利用 “%”符号对各种数据进行格式化输出:
price=1000
print("The price of the bike is %s." %price)
它的运行结果为:
The price of the bike is 1000.
这行代码中的 print 函数包含三个部分,第一部分是格式化字符串(它相当于字符串模板),该格式化字符串中包含一个“ %s”占位符,它会被第三部分的变量或表达式的值代替 ; 第二部分固定使用“%”作为分隔符。格式化字符串中的“ %s ”被称为转换说明符,其作用相当于一个占位符 , 它会被后面的变量或表达式的值代替 。“%s” 指定将变量或值使用 str()函数转换为字符串。如果格式化字符串 中 包含多个“ %s ”占位符,第三部分也应该对应地提供多个变量,并且使用圆括号将这些变量括起来 。例如:
user = "Charli"
age = 8
print("%s is a %s years old boy" % (user , age))
运行结果为:
Charli is a 8 years old boy
格式化字符串中的占位符类型码:
下面代码:
num = -28
print("num is: %6i" % num)
print("num is: %6d" % num)
print("num is: %6o" % num)
print("num is: %6x" % num)
print("num is: %6X" % num)
print("num is: %6s" % num)
输出为:
num is: -28
num is: -28
num is: -34
num is: -1c
num is: -1C
num is: -28
常见的格式控制符总结如下:
下面代码段:
num2 = 30
# 最小宽度为0,左边补0
print("num2 is: %06d" % num2)
# 最小宽度为6,左边补0,总带上符号
print("num2 is: %+06d" % num2)
# 最小宽度为6,右对齐
print("num2 is: %-6d" % num2)
my_value = 3.001415926535
# 最小宽度为8,小数点后保留3位
print("my_value is: %8.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0
print("my_value is: %08.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0,始终带符号
print("my_value is: %+08.3f" % my_value)
输出为:
num is: -28
num is: -28
num is: -34
num is: -1c
num is: -1C
num is: -28
num2 is: 000030
num2 is: +00030
num2 is: 30
字符串序列方法
Python 字符串直接在方括号中使用 索引即 可获取对应的字符 , 字符串 中 第 一个字符的索引为 0、第二个字符的索引为 1 ,后面各字符依此类推 。 此外, Python 也允许从后面开始计算索引,最后一个字符的索 引为 -1,倒数第二个字符的索引为 -2······依此类推。
s = 'crazyit.org is very good'
# 获取s中索引2处的字符
print(s[2]) # 输出a
# 获取s中从右边开始,索引4处的字符
print(s[-4]) # 输出g
# 获取s中从索引3处到索引5处(不包含)的子串
print(s[3: 5]) # 输出zy
# 获取s中从索引3处到倒数第5个字符的子串
print(s[3: -5]) # 输出zyit.org is very
# 获取s中从倒数第6个字符到倒数第3个字符的子串
print(s[-6: -3]) # 输出y g
# 获取s中从索引5处到结束的子串
print(s[5: ]) # 输出it.org is very good
# 获取s中从倒数第6个字符到结束的子串
print(s[-6: ]) # 输出y good
# 获取s中从开始到索引5处的子串
print(s[: 5]) # 输出crazy
# 获取s中从开始到倒数第6个字符的子串
print(s[: -6]) #输出crazyit.org is ver
该段代码输出为:
a
g
zy
zyit.org is very
y g
it.org is very good
y good
crazy
crazyit.org is ver
Python 字符串 还支持用 in 运算符判断是否包含某个子串:
# 判断s是否包含'very'子串
print('very' in s) # True
print('fkit' in s) # False
代码的运行结果为:
True
False
可以采用len()函数获取字符串的长度:
s='good good study,day day up!!!'
print(s)
print(type(s))
print(len(s))
输出结果为:
good good study,day day up!!!
<class 'str'>
29
还可使用全局内置的 min()和 max()函数获取字符串中最小字符和最大字符:
s='good good study,day day up!!!'
print(max(s))
print(min(s))
输出结果为:
y