09-10 字符串

本文深入探讨Python中的字符串,包括字符串的定义、字符编码(ASCII与Unicode)、基本操作(如连接、切片、比较)以及常用方法(如join、split、replace)。此外,还介绍了字符串格式化技巧,包括传统的%操作符和灵活的f-string用法。
摘要由CSDN通过智能技术生成

01 认识字符串

1. 什么是字符串(str)

1)
容器型数据类型;
将’‘、“”、’‘’‘’'、“”“”""作为容器标志
2) 特点
a. 不可变的(不支持增删改);
b.有序的(支持下标操作)
3) 对元素的要求:
a. 里面的每个符号就是字符串中的元素; 可以是任何文字符号,包括: 数字、字母 汉字、日文、汉语、表情符号、标点符号等

b. 任何文字符号都可以是字符串中的元素

str1 = '10,20,30'  # 8个元素
str2 = '12)&^*%$🙂'
  • 三个引号开头三个引号结束的字符串,在字符串中可以直接按回车换行
str3 = "abc\n123"
print(str3)

str4 = '''abc
123'''
print(str4, type(str4))

2.字符 - 字符串中的元素(字符串每一个独立的符号)

字符串中的字符可以分为两种: 普通字符、转义字符

  1. 普通字符: 在字符串中表示符号本身的字符
str5 = 'svfgdh45445,😀'
print(str5)
  1. 转义字符: \和指定的一些符号组合在一起表示特殊功能或者特殊意义的字符
    转义字符是C语言创建的,但是很多都已经没有存在的价值了
  • 并不是\和所有符号组合都可以变成转义字符
str6 = '\m\k\l'
print(str6)
  • 有一些C语言中的转义字符,在其他编程语言中无效,例如\a
str7 = '=\a=\f='
print(str7)

目前常用的转义字符:

符号 含义
\n 换行
\t 水平制表符(相当于按一次tab键)
\’ 表示一个普通的单引号
\" 表示一个普通的双引号
\\ 表示一个普通的反斜杠
\u(四位的十六进制数) 编码字
# \t
str8 = '\tabc\t123'
print(str8)

# \'
str9 = 'it\'s me'
str10 = "it\'s me"
print(str9)
print(str10)

# \' & \"
str11 = " I say: \"you see see, one day day ! \" "
str12 = ' I say: "you see see, one day day ! " '
print(str11)
print(str12)

# \\
str13 = '\\name\\college\\txt'
print(str13)

# \u****
str14 = '\u7eabc'
print(str14)

3.r-string(r字符串)

在字符串的最前面加r或者R,可以让字符串中所有的转义字符功能消失(让字符串中的所有字符自动变成普通字符)

str1 = r'\tabc\n123\''
print(str1)

02 字符编码

1. 编码值

计算机存储数据的时候只能存数字(存的是数字对应的二进制的补码)
为了能够让计算机存储字符,给每个字符对应一个固定的数字,每次需要存储这个字符的时候就去存这个数字;
每个字符对应的那个数字就是这个字符的编码值。

2.编码表

保存每一个符号对应的编码值

1) ASCII码表

有128个字符对应的编码值(只要包含英文符号和其他西欧语言对应的符号)

  • 数学字符0~9从48开始连续递增
  • 大写字母A~Z从65开始连续递增
  • 小写字母a~z从97开始连续递增

2) Unicode编码表(Python)

是ASCII码表的扩展(包含ASCII码表的数据),包含世界上所有国家的语言
中文范围: 4e00 ~ 9fa5

3.Python程序对编码值的应用

1) chr(编码值) - 获取指定编码值的字符

print(chr(97), chr(65))
# 打印所有的大写字母
for i in range(65, 65+26):
    print(chr(i))
print(chr(0x4e00), chr(0x9fa5))
for i in range(0x4e00, 0x9fa5+1):
    print(chr(i), end='')

2) ord() - 获取指定字符对应的编码

  • 注意: 字符指的是长度为1的字符串
print(ord('中'))

3) 编码字符: \u四位十六进制数

程序中给字符串提供字符的时候有两种方式:
a. 直接提供符号本身
b. 通过字符对应的编码字符来提供(\u字符的16进制编码值)

str1 = 'a'
str2 = '\u0061'
print(str1, str2)

4) 编码字符的使用场景:

知道字符编码值,但是不知道字符的情况下,想要在字符串中提供这样一个字符

print('在Unicode编码表中最后一个中文是:', '\u9fa5')
# 0000~ffff
print(0xffff)

03 字符串的基本操作

1.查 - 获取字符串中的字符

字符串获取字符的语法和列表获取元素的语法一样。

1) 获取单个字符

str1 = 'good good study! day day up!'
print(str1[3], str1[-2])
  • 注意: 不管转义字符的功能是什么。在计算字符串长度的时候一个转义字符的长度是1。
str2 = '\tabc\n123\u4e00m'    # 长度为10
print(str2[1], str2[-3])

2) 切片

message = '小明的电话号码是: 11078192113'
print(message[-11:])       # '11078192113'
print(message[3:-2:-2])    # ''
print(message[1:-1:2])    # '明电号是 17121'

3) 遍历

str3 = 'hello python'
for i in str3:
    print(i, end='')
print('-------------------------华丽的分割线--------------------------')
for i in range(len(str3))<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值