2021-5-9 字符串

2021-5-9 字符串

什么是字符串(str)

  • 字符串是容器数据类型(序列),将’‘或者""或者’’’’’'或者""""""作为容器标志,里面每一个独立的符号就是字符串的一个元素
  • 字符串是不可变的:字符串是有序的(支持下标操作)
  • 字符串的元素:引号里面的每一个符号都是字符串的元素,字符串的元素又叫字符。
  • 字符分为两种:普通字符和转义字符
  1. 空串(引号中什么都没有,空格也不行)
empty1 = ''
empty2 = ""
empty3 = ''''''
empty4 = """"""
print(type(empty1),len(empty1))         # <class 'str'> 0
print(type(empty2),len(empty2))         # <class 'str'> 0
print(type(empty3),len(empty3))         # <class 'str'> 0
print(type(empty4),len(empty4))         # <class 'str'> 0
  1. 字符串的容器标志

‘‘和""没有区别;’’’’’'和"""""“没有区别
''和”"里面的内容不能通过直接按回车转行,只能通过转义字符换行;

‘’’’’'和""""""里面的内容可以直接通过回车换行

  1. 字符串的元素 - 字符
  • 字符分为普通字符和转义字符两种

    1. 普通字符 - 在字符串中表示符合本身的字符
    2. 转义字符 - 使用\和其他符号一起来表示特殊功能和意义的字符

    \n - 换行

    \t - 水平制表符(相当于Tab键缩进)

    \‘ - 表示一个普通的单引号

    \“ - 表示一个普通的双引号

    \ \ - 表示一个普通的反斜杠

    1. 阻止转义 - 让字符串中所有的转义字符功能消失(让一个字符串中的每一个符号都表示符号) 在字符串前加r/R
    2. 转义字符 - 编码字符
    • \u 4位16进制数 - 16进制数的编码值对应的字符
  1. 编码值 - 字符编码
  • 编码值 - 计算机在储存符号的时候其实存的是这个符号对应的固定数字,这个数字就是符号对应编码值。
  • 编码表 - 将字符和数字一一对应的表

ASCII码表 : 总共有128个符号,只有美国常用符号,不包括中文。

数字在字母的前面,大写字母在小写字母前面。A-65Z-90,a-97z-122,大写字母和小写字母之间是有间隙的

Unicode编码表(Python) : Unicode编码表中包含ASCII码;包含了目前世界所有国家所有名族的所有语言符号(万国码)

中文编码范围:4e00 ~ 9fa5

chr(编码值) - 获取编码值对应字符

ord(字符) - 获取指定字符的编码值(凡是需要字符的地方,都给长度是1的字符串)

编码字符 - \u4e00

  • 获取所有中文
num = 0
print(0x9fa5 - 0x4e00)
for x in range(0x4e00,0x9fa5+1):
    num += 1
    print(chr(x),end=' ')
    if num % 30 == 0:
        print()
  • hex - 将其他进制的数据转换成16进制数据
  • bin - 将其他进制的数据转换成2进制数据
  • oct - 将其他进制的数据转换成8进制数据

字符串相关操作

  • 字符串获取字符和列表获取元素的语法一样
message = 'you see see one day day!'
print(message[2])	# 'u'
  • 一个空格是一个字符
str = 'abc 123'
print(str[4])	# ' '
  • 一个转义符是一个字符,长度是1
str = '\tabc\u4fa9 123'
print(str)		# '	abc侩 123'
print(len(str))	# 9
  1. 运算符
  • 字符串1 + 字符串2 - 将两个字符串拼接产生一个新的字符串

  • 字符串 * N(正整数) - 将字符串重复N次产生一个新的字符串

  • 比较运算 > <个 >= <=

  • 两个字符串比较大小比较的是第一对不相等的字符的编码值的大小

是否是数字字符:‘0’ <= char <= ‘9’

是否是小写字母:‘a’ <= char <= ‘z’

是否是大写字母:‘A’ <= char <= ‘Z’

是否是字母:‘a’ <= char <= ‘z’ or ‘A’ <= char <= ‘Z’

是否是中文:’\u4e00’ <= char <= ‘\u9fa5’

  1. in 和 not in

字符串1 in 字符串2 - 判断字符串2中是否包含字符串1 (判断字符串1是否是字符串2的子串)

print('abc' in 'a1b2c3')    # False
print('abc' in 'abc123')    # True
print('1' in 'abc123')      # True
  1. len、str

    str(数据) - 将数据转换成字符串,(任何类型的数据都可以转换成字符串,转换的时候直接在数据的打印值外加引号)

字符串相关方法

  1. join

    字符串.join(序列) - 将序列中的元素使用指定字符串连接产生一个新的字符串

    ​ - 序列必须是字符串

names = ['小明','张三','李四']
result = ' '.join(names)
print(result)       # 小明 张三 李四

message = 'abc'
# a.b.c
print('.'.join(message))        # a.b.c

num = [10,9,78,67]
# '1097867'
result = ''.join([str(x) for x in num])
print(result)       # 1097867

list1 = ['name', 23, True, '你好', '哈哈']
# 'name+你好+哈哈'
result2 = '+'.join([x for x in list1 if type(x) == str])
print(result2)
  1. split
  • 字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割
  • 字符串1.split(字符串2,N) - 将字符串1中前N个字符串作为切割点进行切割
str1 = 'how are you? i am fine, thank you! and you?'
result = str1.split(' ')
print(result)        # ['how', 'are', 'you?', 'i', 'am', 'fine,', 'thank', 'you!', 'and', 'you?']

result = str1.split('you')
print(result)       # ['how are ', '? i am fine, thank ', '! and ', '?']

print('abca123amn'.split('a'))      # 返回空串['', 'bc', '123', 'mn']

str1 = 'abx12mn12xy12==12++'
print(str1.split('12',2))           # ['abx', 'mn', 'xy12==12++']
  1. replace
  • 字符串1.replace(字符串2,字符串3) - 将字符串1中所有的字符串2都替换成字符串3
  • 字符串1.replace(字符串2,字符串3,N) - 将字符串1前N个字符串2替换成字符串3
str1 = 'how are you? i am fine, thank you! and you?'
# how are me? i am fine, thank me! and me?
print(str1.replace('you','me'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值