字符串(不完全) + 编码

本文介绍了字符串的基本概念,包括其有序和不可变特性,以及字符的分类、转义字符、编码基础、进制转换。涵盖了字符串比较、增删改查、字符编码使用场景和ASCII/Unicode编码表,以及常用的字符串操作和字符相关函数如chr(), ord(), hex()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串

一、什么是字符串?

  1. 定义:单引号/双引号/三引号,引起来的都是字符串

  2. 特性:

    1. 有序(支持索引)
    2. 不可变(修改只能创建新的)

二、 字符

(字符串组成元素)

1. 字符分类:
  1. 普通字符:表示它本身

  2. 转义字符:

    • 需要在引号里是字符串才能生效
    • 一旦出现计划之外的特殊字符,直接使用原始字符串:r‘’
    1. \n :换行
    2. \t:水平制表符,一个Tab
    3. \:代表了一个反斜线字符‘\’
    4. ':代表了一个单引号的字符
    5. ":代表了一个双引号字符
  3. 编码字符 = 原字符:

    1. 定义:各种的字符、图片等转化成数字的格式

    2. 格式:‘\u + 四位的十六进制数’

      • 注意这里十六进制不用写0x,易错
      • str1 = ‘a’,和str1 = '\u0061’是一样的
      • 举例:‘\u4e00abc’
    3. 什么时候用这个:

      1. 用最后一个中文时,直接’\u9fa5’

      2. 字符不会写时,用这个写法

2. 编码基础:

(所有东西:字符,图片等都是用数字保存到计算机的)

  1. 编码表:

    1. ASCII表 :美国原创的码表,早期码表
      A-65
      a-97

    2. Unicode表:万国码、统一码,是ASCII表的拓展,包含所有国家所有的语言,所有的符号

      • Unicode里面使用十六进制进行保存
      • 中文编码的范围:4e00 - 9fa5
  2. 编码相关操作

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

    2. ord(字符) - 获取指定字符对应的编码值,返回的是十进制

    3. hex(数字) - 转化为十六进制,注意前面没标注就是十进制数字

3.关于进制
  • 关于十六进制:0-9和a-f(或A-F)组成:0ff,01b

  • 一个数字默认都会当成十进制处理,需要特质某些进制的数字需要加一些特殊前缀:

    1. 二进制:0b, 0b01010101, 那个是0
    2. 八进制:0o, 0o721
    3. 十六进制:0x, 0x0ff

三、字符串操作

  1. 比较大小
    • 比较第一个不相等的元素的编码值大小。(但注意不同类型数据是不能进行比较的)
    • 要么都是字符串一起比较,注意字符串和编码字符:\u…是等同的 ;
    • 要么ASCII码值(int类型)大小一起比较
  2. 增删改查:
    1. 查:索引
    2. 增:+、*
    3. 删:只能切片
    4. 改:切片
  3. in、not in:
    • ‘hel’ in ‘hello world’ :判断前者是否被包含在后者中,必须是连续的
# 案例:统计str1中中文的个数
str1 = '换手机hss8223Kks是sjd==222'
count = 0
for i in str1:
    if '一'<=i<=chr(0x9fa5):
        count+=1
print(count)

# 案例:提取字符串中所有的大写字母
str2 = '涉及到MJk230023sjkU293shT=='
# 'MJUT'
for i in str2:
    if 'A'<=i<='Z':
        print(i)
        
print(type(ord('a')))
4
M
J
U
T
<class 'int'>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值