python-4.字符串

字符串

  • 概述
1. 字符串天生具有跨平台性
2. 计算机不认识字符,认识数字,需要之间的桥梁:编码表
    utf-8 ASCII utf-8 GBK
3. 字符串是不可变类型对象(不支持增删改操作)
4. 支持切片操作
5. 支持下标操作
  • 创建
1. 手工
    s = 'a,b,c'
    print(s)
2. 构造
    str(obj):将obj转换成可以输出的字符串
  • 访问
1. 访问一个:下标
2. 访问多个:切片
3. 访问所有:遍历
  • 字符串分类
1. 单引号字符串:'abc'
2. 双引号字符串:"abc"
3. 三引号字符串:"""abc"""
    """多行字符串
    一般用于多行注释
    """
注:无论双,三最终都会被解释为''单引号
4. 原始字符串:r'abc'
    作用:让转移字符失效,展现字符串最原始的功能
5. 转义字符(str类型)
    '\t' '\n'具有特殊功能的字符串
6. unicode字符串:(str类型)
    u'abc'
    python2中的默认编码:ASCII,不能使用中文,如果要使用中文,使用unicode字符串
7. 二进制字符串:(bytes类型)
    s1 = b'abc'
    s2 = 'abc'bytes转换为str 用s1.decode()方法解码
    将str转换为bytes 用s2.encode()方法编码
代码:
s1 = b'abc'
s2 = 'abc'
s3 = s1.decode()
s4 = s2.encode()
print(s1, s2, s3, s4)

效果:
b'abc' abc abc b'abc'
  • 字符串的常用方法
注意:字符串是不可变类型,这些操作不会改变字符串
1. capitalize():字符串首字母大写
2. endswith(str):判断字符串是否以str结尾
   startswith(str):判断字符串是否以str开头
3. isalnum():判断是否是数组或字母
4. isalpha():判断是否是字母
注:isalpha():可判断字符串s是否全为字母,但判断中文时依旧会返回TRUE
    先将字符串s进行编码,再次调用方法即可
5. isdecimal():判断是否是十进制数(不能有小数点)
6. isdight():判断数字(无进制要求)
7. isnumeric():判断是否是数字(阿拉伯数字,五,繁体数字,希腊I II)
8. isspace():判断是否为空格
9. issupper():判断是否是大写
    islower():判断是否是小写
10. join(iterable):
    '*'.join(iterable)将原有字符串作为分隔符,和可迭代对象拼接
    # 开发常用
        s = (a,b,c) print(''.join(s))
11. lower():将字符串全转为小写
    upper():将字符串全转为大写
12. lstrip():去掉字符串左边的char
    rstrip():去掉字符串右边的char
    strip(char):去掉字符串两边的char
13. split(char):
    将字符串用char进行分割
    返回一个字符串列表
代码:
s1 = 'abc'
s1_1 = s1.capitalize()
print(s1, s1_1)
s2 = '$sdfas*'
print(s2.endswith('*'), s2.startswith('$'))
s3 = 'sdkf123'
s3_1 = 'adfk123$$'
print(s3.isalnum(), s3_1.isalnum())
s4 = 'abc'
s4_1 = 'abc123'
s4_2 = 'abc李'
s4_3 = s4_2.encode()
print(s4.isalpha(), s4_1.isalpha(), s4_2.isalpha(), s4_3.isalpha())
s5 = '123'
s5_1 = '123.0'
print(s5.isdecimal(), s5_1.isdecimal())
s6 = '123.0'
s6_1 = '123.1231290'
s6_2 = '123'
print(s6.isdigit(), s6_1.isdigit(), s6_2.isdigit())
s7 = '一'
s7_1 = '壹'
s7_2 = '1'
print(s7.isnumeric(), s7_1.isnumeric(), s7_2.isnumeric())
s8 = ' '
s8_1 = '  '
s8_2 = ''
print(s8.isspace(), s8_1.isspace(), s8_2.isspace())
s9 = 'Abc'
s9_1 = 'abc'
print(s8.isupper(), s8_1.islower())
s10 = 'abcd'
t = '(a,b,c)'
print('$'.join(s10), t, ''.join(t), type(''.join(t)))
s11 = 'AbC'
s11_1 = 'abC'
print(s11.lower(), s11_1.upper())
s12 = '$absfa$fsd$'
s12_1 = '$absfa$fsd$'
s12_2 = '$absfa$fsd$'
print(s12.lstrip('$'), s12_1.rstrip('$'), s12_2.strip('$'))
s13 = '*ab*cd*fdsf'
print(s13.split('*'))
# 补充
s14 = '***hehe**heheh'
print(s14.split('*'), type(s14.split('*')))
print(''.join(s14.split('*')))

效果:
abc Abc
True True
True False
True False True False
True False
False False True
True True True
True True False
False False
a$b$c$d (a,b,c) (a,b,c) <class 'str'>
abc ABC
absfa$fsd$ $absfa$fsd absfa$fsd
['', 'ab', 'cd', 'fdsf']
['', '', '', 'hehe', '', 'heheh'] <class 'list'>
heheheheh
  • 6.format(*args, **kwargs)
1. format('多个参数')
*args:可以传入多个参数
**kwargs:关键字的形式传入
参数类型:位置参数(必选参数),默认参数,可变长参数,关键字参数
    1.位置参数
    '{n}':表示一个占位符
    '{n}'.format(参数1,参数2,。。。)
    n:(参数)下标
    从参数中,获取对应下标的数据,替换到占位符上
    '{n}'n可以省略,默认从0开始
    2. 关键字参数传值
    '{a}'.format(a='参数1')
代码:
s1 = 'afadf*{}*safsdf*{}*fdsf*{}*dsfa'
print(s1.format('I', 'Love', 'You'))
s2 = 'afadf*{a}*safsdf*{b}*fdsf*{c}*dsfa'
print(s2.format(a='You', b='Love', c='He'))

效果:
afadf*I*safsdf*Love*fdsf*You*dsfa
afadf*You*safsdf*Love*fdsf*He*dsfa
  • 字符串格式化
使用%和字母构成特殊占位符
格式化什么,就转换成什么
1. %c:格式化字符编码,将数值转为
2. %s:格式化字符
3. %d:格式化整数
4. %o:格式化八进制数
5. %x:格式化十六进制数
6. %f:格式化浮点数
7. %e:格式化科学计数法
8. %g:自动选用科学计数法或浮点数根据值的大小决定使用%f或%e
print('%c'%98)
print('%s like %s'%('af', 'adf'))
print('%d'%10.5)
print('%o'%10)
print('%x'%10)
print('%f'%10)
print('%e'%10.12312324)

b
af like adf
10
12
a
10.000000
1.012312e+01
  • 格式化命令的辅助命令
1. m.n
    m:显示总的宽度,没有字符位置用空格补充
      当宽度小于实际宽度时,m不生效
    n:小数点后取几位
2. -:左对齐
3. #:显示符号(八进制和十六进制)
4. 0:空白用0填充
print('%.2f'%3.1415)
print('%10.2f'%3.1415)
print('%1.2f'%3.1415)
print('%-10.2f'%3.1415)

print('%#x'%10)
print('%010.2f'%3.1415)
print('%-010.2f'%3.1415)
print('%-010.2d'%3)

3.14
      3.14
3.14
3.14      
0xa
0000003.14
3.14      
03 
  • 转义字符
常见的转义字符
\n:换行
\r:换行
\\:斜杠
\t:横向制表
\v:纵向制表
\':单引号
\":双引号
\a:警报(发声)
\0:空串
\f:换页符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值