python-03 使用字符串

# 第三章 使用字符串
# 3.1 字符串基本操作
# 字符串是不可变的,对所有字符串的元素复制和切片复制都是非法的
# 索引、切片、乘法、成员资格检查、长度、最小值、最大值 都适合字符串

#3.2 设置字符串的个事:精简版
'''
为转换说明符
%s: 字符串
%.3f: 包含3位小数的浮点数
'''
# print('Hello, %s. %s enough for ya?' % ('world', 'Hot'))
#
# from string import Template
# print(Template('Hello, $who! $what enough for ya?').substitute(who = 'Mars', what = 'Dusty'))
#
# print('{}, {} and {}'.format('first', 'second', 'thrid'))
# print('{0}, {1} and {2}'.format('first', 'second', 'thrid'))
# print('{3} {0} {2} {1} {3} {0}'.format('be', 'not', 'or', 'to'))

#如果变量与替换字段同名, 可以在字符串前面加上f
# from math import e
# print(f'Euler\'s constant is roughly {e} ')
#
# #3.3 设置字符串的格式: 完整版
# print('{{abc}}'.format()) #如果要是用花括号,一定要使用两个花括号
"""
1、字段名:索引或标识符,指出要设置哪个值的格式并使用结果来替换该字段。除指定值外,还可指定值的特定部分,如列表的元素。
2、转换标志:跟在叹号后面的单个字符。当前支持的字符包括r(表示repr)、s(表示str) 和a(表示ascii)。如果你指定了转换标
志,将不使用对象本身的格式设置机制,而是使用指定的函数将对象转换为字符串,再做进一步的格式设置。
3、格式说明符:跟在冒号后面的表达式(这种表达式是使用微型格式指定语言表示的)。格式说明符让我们能够详细地指定最终的格式,
包括格式类型(如字符串、浮点数或十六进制数),字段宽度和数的精度,如何显示符号和千位分隔符,以及各种对齐和填充方式。
"""
# 3.3.1 替换字段名
# print('{foo} {} {bar} {}'.format(1, 2, bar=4, foo=3))
# print('{foo} {1} {bar} {0}'.format(1, 2, bar=4, foo=3))

# 3.3.2 基本转换
# print('{pi!s} {pi!r} {pi!a}'.format(pi='π'))
# s 代表 str
# r 代表 repr
# a 代表 ascii
# print('The number is {num}'.format(num=42))
# print('The number is {num:f}'.format(num=42))
# print('The number is {num:.3f}'.format(num=42))
# f 浮点数
# 3f 保留三位数的浮点数
# 3.3.3 宽度、精度和千位分隔符
# print('The number is {num:10}'.format(num=42))
# print('The number is {num:10}'.format(num='42'))
# 10 整数向右对齐,字符串向左对齐
# print('{:.5}'.format('Guido van Rossum'))
# print('{:5}'.format('Guido van Rossum'))
# .5取前面五个字节
# 5 取全部
# print('one googol is {:,}'.format(10**100))
# , 千位分隔符
#3.3.4 符号、对齐和用0填充
# print('{:010.2f}'.format(0.1))
# 10 前面的 0 表示填充
# print('{0:<10.2f} \n {0:^10.2f} \n {0:>10.2f}'.format(0.1))
# print('{0:$<10.2f} \n {0:$^10.2f} \n {0:$>10.2f}'.format(0.1))
# < ^ > 分辨表示 向左、居中、向右对齐 $ 表示填充符
# print('{0:=10.2f}\n{1:=10.2f}'.format(0.1, -0.1))
# print('{0:-.2f}\n{1:-.2f}'.format(0.1, -0.1))
# print('{0:+.2f}\n{1:+.2f}'.format(0.1, -0.1))
# print('{0: .2f}\n{1: .2f}'.format(0.1, -0.1))
# print('{0:b}\n{0:#b}'.format(42))
# = 、 - 、 +、 (空格)、 #

# 3.4 字符串方法
# 1、string.digits:包含数字0~9的字符串。
# 2、string.ascii_letters:包含所有ASCII字母(大写和小写)的字符串。
# 3、string.ascii_lowercase:包含所有小写ASCII字母的字符串。
# 4、string.printable:包含所有可打印的ASCII字符的字符串。
# 5、string.punctuation:包含所有ASCII标点字符的字符串。
# 6、string.ascii_uppercase:包含所有大写ASCII字母的字符串。
# import string
# print(string.digits)
# print(string.ascii_letters)
# print(string.ascii_lowercase)
# print(string.printable)
# print(string.punctuation)
# print(string.ascii_uppercase)
# 3.4.1 center 在两边填充字符(默认为空格) ljust、rjust和zfill
# print('[' + '123'.center(30) + ']')
# print('[' + '123'.center(30, '*') + ']')
# 3.4.2 find 字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1 rfind、index、rindex、count、startswith、endswith
# print('123456'.find('2'))
# print('123456'.find('7'))
# print('123456123'.find('2', 2, 6)) #2 表示起始位置 6 表示终止位置
# 3.4.3 join 合并元组 split
# seq = ['1', '2', '3', '4']
# print('+'.join(seq))

#3.4.4 lower 返回字符串的小写
# print('ABCD'.lower())
# islower、istitle、isupper、translate。
# capitalize、casefold、swapcase、title、upper

# print('aa'.islower(), 'Aa'.islower(), 'Aa'.istitle(), 'AA'.istitle())
# print('AA'.isupper(), 'Aa'.isupper())
#print('abc'.translate(maketrans.('a'), 'A'))

# from string import capwords
# print(capwords('that\'s all, folks')) # 首字符大写

# 3.4.5 replace
# print('aabbcc'.replace('a', 'A')) # 把 a 替换为 A

# 另请参见:translate。
# 附录B:expandtabs。
#3.4.6 split
# print('1+2+3+4+5'.split('+'))
#另请参见:join。
#附录B:partition、rpartition、rsplit、splitlines。

#3.4.7 strip 删除开头末尾的字符(默认是空格)
# print(' 123 '.strip())
# print('!!***123***!!!!'.strip('!*'))
# print('!!***123***!!!!'.strip('*!'))

# 3.4.8 translate
table = str.maketrans('cs', 'kz')
print(table)
print('this is an incredible test'.translate(str.maketrans('cs', 'kz')))

# replace、lower。
# 3.4.9 判断字符串是否满足特定的条件
#isalnum、isalpha、isdecimal、isdigit、isidentifier、islower、isnumeric、isprintable、isspace、istitle、isupper。

'''
b 将整数表示为二进制数
c 将整数解读为Unicode码点
d 将整数视为十进制数进行处理,这是整数默认使用的说明符
e 使用科学表示法来表示小数(用e来表示指数)
E 与e相同,但使用E来表示指数
f 将小数表示为定点数
F 与f相同,但对于特殊值(nan和inf),使用大写表示
g 自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符,但在默认情况下至少有1位小数
G 与g相同,但使用大写来表示指数和特殊值
n 与g相同,但插入随区域而异的数字分隔符
o 将整数表示为八进制数
s 保持字符串的格式不变,这是默认用于字符串的说明符
x 将整数表示为十六进制数并使用小写字母
X 与x相同,但使用大写字母
% 将数表示为百分比值(乘以100,按说明符f设置格式,再在后面加上%)
'''

猜你喜欢

转载自www.cnblogs.com/fuyouqiang/p/11844615.html