数据类型之字符串(string)(四)

字符串本质是:字符序列
不可变

1、字符串编码,Unicode
ord('A')
ord('')
2、创建字符串,引号
a = 'Hello python!'
b = "I'm a teacher!"
c = """
name
age
job
"""
d = ''   # 空字符串
3、转义字符   “\+特殊字符”
  \(在行尾时) 续行符
  \\ 反斜杠符号
  \' 单引号
  \" 双引号
  \b 退格
  \n 换行
  \t 制表符
  \r 回车
4、字符串拼接
  1)+号连接
  字符串+字符串——拼接
  数字+数字——计算
  类型不同——报错
  2)可以将多个字符串直接放在一起实现拼接
print('abc' + 'cde')
print('abc' 'cde')
  结果:abccde
     abccde

5、字符串复制
print('abc'* 10)

  结果:abcabcabcabcabcabcabcabcabcabc

6、不换行打印
print('doc', end='\t')     # 制表符结尾
print('wang', end=' ')     # 空格结尾
print('', end='*')       # *号结尾

7、从控制台读取字符串
name = input("请输入姓名:")    # 返回字符串
print(name)
8、str()函数,将其他类型转为字符串
print(str(3.33))
print(str(True))
9、提取字符串——索引
a = 'abcdefghijklmnopqrstuvwxyz'    # 左侧从0开始,右侧从-1开始
print(a[0]) 
print(a[3])
print(a[-1])

  返回结果:

        a

        d

        z

10、replace()实现字符串替换,本质是创建了新的字符串对象
b = a.replace('c', '')
print(a)
print(b)
11、切片
print(a[:])    # 提取整个字符串
print(a[1:4])
print(a[3:8:2])   # 步长为2

print(a[-3:])
print(a[::-1])    # 将字符串倒序排列

print(a[12:300])   # 不报错,至末尾
12、split()分割
a = "to be or not to be"
print(a.split())     # 以空格分割
print(a.split('be')) # 以be分割
13、join(),字符串拼接
a = ['wang', 'and', 'zhang']
print('*'.join(a))
print(''.join(a))
print(' '.join(a))

14、字符串驻留机制
对于符合标识符规则的字符串(仅包含下划线、字母和数字),会启用
a = 'abc_33'
b = 'abc_33'
print(a is b)    # True

c = 'abc#'
d = 'abc#'
print(c is d)   # 交互界面为False,pycharm为True
print(id(c))
print(id(d))

15、字符串比较和同一性
print(a == b)    # 比较值是否相等
print(a is b)    # 比较是否为同一对象

16、成员操作符 in / not in
print('a' in a)
print('d' in a)

17、查找方法
a = '岸柳可藏鸦。路转溪斜。忘机鸥鹭立汀沙。咫尺钟山迷望眼,一半云遮。\
临水整乌纱。两鬓苍华。故乡心事在天涯。几日不来春便老,开尽桃花。'

print(len(a))     # 字符串长度
print(a.startswith('岸柳可藏鸦'))      # 是否以指定字符串开头
print(a.endswith('开尽桃花。'))        # 是否以指定字符串结尾
print(a.find(''))            # 第一次出现位置
print(a.rfind(''))            # 最后一次出现位置
print(a.count(''))           # 出现次数
print(a.isalnum())            # 受否为字母数字

18、去除首尾信息
b = '           开尽桃花       '
print(b.strip())           # 去除首尾空格,可传参数,去除指定字符
print(b.lstrip())           # 去除左侧空格,可传参数,去除指定字符
print(b.strip())           # 去除右侧空格,可传参数,去除指定字符

19、大小写转换,均产生新的字符串
c = 'I love you,Baby!'
print(c.capitalize())           # 首字母大写
print(c.title())               # 标题
print(c.upper())              # 全部大写
print(c.lower())             # 全部小写
print(c.swapcase())           # 大小写转换

20、格式排版
print(c.center(40, '*'))    # 指定字符串,c居中,不足以*补齐,缺省为空格补齐
print(c.ljust(40))           # 左对齐
print(c.rjust(40))           # 右对齐

21、其他方法
c = '枯藤老树昏鸦'
print(c.isalnum())           # 是否为字母数字
print(c.isalpha())           # 是否为字母(包括汉字)
print(c.isdigit())           # 是否为数字
print('\t\n'.isspace())           # 是否为空白符
print(c.isupper())           # 是否为大写字母
print(c.islower())           # 是否为小写字母

22、字符串格式化
msg = "名字是:{0},年龄是:{1}"
m = msg.format('doc wang', 22)
print(m)

msg = "名字是:{name},年龄是:{age}"
m = msg.format(name='doctor', age=18)
print(m)

23、填充和对齐
^、<、>分别是居中、左对齐、右对齐,后面带宽度

r = "{:*>8}".format("234")
"""
说明:*号表示用填充字符(缺省为空格填充),>右对齐,8表示填充为8个字符
"""
print(r)

24、数字格式化
a = "我是{},我的工资为{:1.2f}"
print(a.format('doc wang', 3500.23723))

b = "{:0>2d}".format(5)
c = "{:+.2f}".format(3.141592)
print(b)
print(c)

{:.2f} 保留2位小数
{:+.2f} 带符号,保留2位小数
{:.0f} 不带小数
{:0>2d} 数字补零(填充左边,宽度为2)
{:0<4d} 数字补零(填充右边,宽度为4)
{:x<4d} 数字补x(填充右边,宽度为4)
{:,} 以逗号分隔的数字格式
{:.2%} 百分比格式
{:.2e} 指数记法
{:10d} 右对齐(默认,宽度为10)
{:<10d} 左对齐(宽度为10)
{:^10d} 居中对齐(宽度为10)

25、可变字符串
import io
s = "hello,python"
sio = io.StringIO(s)
print(sio)
sio.seek(7)
sio.write('')
print(sio.getvalue())
posted @ 2019-10-30 22:35  刀客王  阅读(293)  评论(0编辑  收藏  举报