python基础day-08:字符串

本文介绍了Python中的字符串基础知识,包括字符串的定义、字符类型、转义字符、字符编码如ASCII和Unicode,以及字符串的获取、运算和相关函数。此外,还详细讲解了字符串的切片、比较操作,以及常用的字符串方法,如count、index、join、split和replace等。
摘要由CSDN通过智能技术生成

字符串

一、什么是字符串

  • 容器
  • 容器标识’’、""、’’’ ‘’’、""" “”"
  • 容器里面的每个独立字符都是字符串的元素
  • 字符串的元素又叫字符
  • 不可变
  • 有序
s1 = '🎈'
s2 = "abc,你好?123 ~"
s3 = '''
你
好
呀
'''
print(s3)

二、字符

  • python中有字符的概念,但没有对应的数据类型,如果需要字符,就用长度为1的字符串来表示
  • 字符串中的元素/符号/字符分两种,普通字符和转义字符

2.1 普通字符

  • 除了转义字符以外的字符都属于普通字符
  • 普通字符在字符串中表示这个符号本身

2.2 转义字符

  • 通过 \加其它字符 的形式存在,在字符串中有特殊功能或特殊意义
  • 看上去像两个字符,其实是一个字符
2.2.1 常见转义
  • 换行\n (相当于回车)
  • 水平制表\t (相当于tab键)
  • 单引号 ’
  • 双引号 "
  • 一个反斜杠 \
s4_1 = 'abc\'123'
s4_2 = "abc'123"
print(s4_1 == s4_2)  # True
s5 = 'abc"123'
2.2.2
  • 16进制编码字符 \u四位的16进制数
s6 = 'abc\u4ed123'
print(s6)  # abc仑23
字符编码
  • 计算机能直接存储的数据只有数字
  • 而且存的是数字的补码
  • 在保存文本数据时,每个文本符号都会对应一个数字,即编码值
  • 字符编码表:ASCII码表、Unicode编码表
ASCII
  • 128个字符:0~127
  • 数字09:4857
  • 大写字母AZ:6590
  • 小写字母az:97122
Unicode
  • ASCII的扩展
  • 中文范围:4e00~9fa5
print('\u4e00 ~ \u9fa5')  # 一 ~ 龥
chr(编码值)
  • 获取指定编码值对应的字符
print(chr(0x4e00))
print(chr(97))
ord(字符)
  • 获取字符的编码值

三、获取字符

  • 字符串获取字符的语法和列表一样

3.1 获取单个字符

  • 字符串[下标]
  • 一个空格也是一个字符
  • 一个转义字符是一个字符
print(len('abc\n123'))  # 7
print('abc\t123'[4])    # 1
print(len('\u4e00'))    # 1

3.2 切片

四、运算

4.1 数学运算

  • +

    字符串1 + 字符串2
    合并产生一个新的字符串

str1 = 'abc'
str2 = '123'
print(str1 + str2)  # 'abc123'
  • *
    字符串N / N字符串
    字符串重复产生N次
print('hello world\n' * 10)

4.2 比较运算

  • ==、!=
  • >、<、>=、<=
    两个字符串比较大小,比较的是第一对不相等的字符的大小
    比的是字符编码值的大小
print('abc' > '12345')  # True
print('一' > 'z')       # True
比较运算符的应用:判断字符的类型
判断字符是否数字:48 <= ord(字符) <= 57
或者这样:'0' <= 字符 <= '9'
# 练习:
# 分别统计字符串中中文个数和字母个数
str1 = 'hsjj数据是2823竭尽所能SJJ==-2...数kkl'
count_cn = 0
count_ab = 0
for i in str1:
    if '\u4e00' <= i <= '\u9fa5':
        count_cn += 1
    elif 'a' <= i <= 'z' or 'A' <= i <= 'Z':
        count_ab += 1
print(count_cn, count_ab)
# 判断一个字符串中是否有数字字符,有打印True, 没有打印False
str2 = 'bans江苏省'
str3 = '三角函数sss223=='
for i in str3:
    if '0' <= i <= '9':
        print(True)
        break
else:
    print(False)

4.3 in 和 not in

字符 in 字符串
判断字符串中是否存在指定的字符

print('a' in 'abc')  # True

字符串1 in 字符串2
判断字符串1是否是字符串2的字串

print('abc' in '123abcde')  # True
print('abc' in '1a2b3c45')  # False

五、相关函数

  • max()、min()、sorted()
print(max('dfgaersxrg'))     # x
print(min('dfgaersxrg'))     # a
print(sorted('dfgaersxrg'))  # 返回列表['a', 'd', 'e', 'f', 'g', 'g', 'r', 'r', 's', 'x']
  • len()
    求长度

  • str()
    str(数据)
    所有类型的数据都可以转
    直接在数据打印值最外层加引号

print(str([1, 2, 3]))       # '[1, 2, 3]'
print(len(str([1, 2, 3])))  # 9 括号、逗号、空格都成了字符串中的字符元素
  • 好用的 eval()
    自动检测格式
    将列表格式的字符串转化成列表,或将字典格式的字符串转成字典
lst = [1, 2, 3]
lst_str = str(lst)

lst_str_lst1 = list(lst_str)
print(lst_str_lst1)  # ['[', '1', ',', ' ', '2', ',', ' ', '3', ']']

lst_str_lst2 = eval(lst_str)
print(lst_str_lst2)  # [1, 2, 3]

六、常用字符串方法

  • 字符串.count(str/chr)
  • 字符串.index()
    第一次出现的位置
  • 字符串.join(序列)
    将序列中的元素通过原字符串连接
lst1 = ['d', 'e', 'f', 1, 2, 3]
lst2 = ['d', 'e', 'f']
  • print(’-’.join(lst1)) # 报错,序列中的元素需要是字符串
print('-'.join(lst2))  # d-e-f
print('-'.join([str(item) for item in lst1]))  # d-e-f-1-2-3
  • 字符串.split(str,N)
    段数比切割点多1,所以经常得到空字符串
    切前N次

  • 字符串.replace(str1, str2, N)
    将str1换成str2
    将前N个替换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值