Python学习笔记:10 容器型数据类型------字符串

字符串的定义

  1. 字符串是容器型数据类型,使用单引号或双引号作为容器标志,容器中的元素全是字符。

  2. 字符串是不可变的(不支持增删改)、有序的(支持下标操作)

# 字面量语法
b = "hello, world"
# 多行字符串
c = '''
hello,
world!
goodbye,
world!
'''
print(b)
print(c)

运行结果如下:

hello, world

hello,
world!
goodbye,
world!

字符编码

计算机不能直接存储字符(符号),只能存储数字;为了能够存储字符,把每一个字符关联了一个固定的数字,这个固定的数字就是对应的字符的编码。

  1. ASCII

    在计算机中采用一个字节保存一个字符(总共128个字符),字符包含了所有的字母、数字和常用符号。

    常见字符的编码值:

    数字字符0~948~57

    大写字母A~Z65~90

    小写字母a~z97~122

  2. Unicode

    Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。(已经收录超过13万个字符)

    Unicode编码中包含了ASCII码表中所有的字符,其中中文编码范围4E00~9FA5

  3. chrord函数

    chrord这两个函数可以实现字符和编码值之间的相互转换。

  • chr(编码值)—> 获取编码值对应的字符
  • ord(字符)—> 获取指定字符对应的编码值
print(chr(68))    # D
print(ord('%'))   # 37
print(ord('风'))  # 39118

转义字符串和原始字符串

可以在字符串中使用\(反斜杠)来表示转义,也就是说\后面的字符不再是它原来的意义。

常见的转义字符有:

\n —> 换行

\t —> 水平制表符

\' —> 单引号

\" —> 双引号

\\ —> 反斜杠

s1 = '\'hello\''         # 'hello'
s2 = "\\hello\\"         # \hello\
s3 = '\\time up \\now'   # \time up \now

Python中的字符串可以rR开头,这种字符串被称为原始字符串,意思是字符串中的每个字符都是它本来的含义,没有所谓的转义字符。例如,在字符串'hello\n'中,\n表示换行;而在r'hello\n'中,\n不再表示换行,就是反斜杠和字符n

# 原始字符串
d = r'c:Users\Administrator\abc\hello.py'     # c:Users\Administrator\abc\hello.py
# 带占位符的字符串(格式化字符串)
e = f'文件路径{
     d}'                             # 文件路径c:Users\Administrator\abc\hello.py

Python中还允许在\后面还可以跟一个八进制或者十六进制数来表示字符,例如\141x61都表示小写字母a,前者是八进制表示法,后者是十六进制表示法。另外一种表示字符的方式是在\u后面跟Unicode字符编码,例如\u9a85\u660b表示中文"骅昋"。

s4 = '\141\142\143\x61\x62\x63'
# Unicode
s5 = '\u9a85\u660b'

字符串的运算

拼接和重复

使用+*实现字符串的拼接与重复。

a = 'hello, world!'
b = 'he'
c = 'apple'
# 重复运算
print(b * 5)   # hehehehehe
# 字符串拼接
c = b + c
print(c)       # heapple

比较运算

字符串在计算机内存中也是以二进制形式存在的,那么字符串的大小比较比的是每个字符对应的编码的大小。

a = 'hello, world!'
b = 'he'
c = 'apple'
# 比较运算(比较字符串的内容--->比较字符串编码大小)
print(a == b)     # False
print(a != b)     # True
print(a > c)      # True
print(a >= b)     # True

Python中还有一个运算符is,如果用is来比较两个字符串,它比较的是两个变量对应的字符串是否在内存中相同的位置(内存地址),简单地说就是两个变量是否对应同一个字符串。

a = 'hello, world!'
b = 'hello, world!'
c = b
# 比较字符串内容
print(a == b, b == c)    # True True
print(a is b, b is c)    # True True

成员运算

与列表操作一致

a = 'hello, world!'
# 成员运算
print(
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

better meˇ:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值