1. 什么是字符串(str)

  1. 字符串是容器型数据类型;
    将’’、""、’’’’’’、""""""作为容器的标志,里面直接是多个符号,每一个符号就是字符串的一个元素:‘元素1元素2元素3…’
  2. 字符串不可变; 字符串是有序的
  3. 元素 – 所有的的符号都可以作为字符串的元素;字符串中的元素又叫字符。字符分为普通字符和转义字符两种。
    “”"

1) 字符串的元素(字符)可以是是任意符号

str1 = ‘是世界上就sjaks,.=-!~。;【】↓❀😊1232347’
print(str1)

2) 空字符串

str2 = ‘’
str3 = “”
str4 = ‘’’’’’
str5 = “”""""
print(type(str4), len(str4)) # <class ‘str’> 0

3) 多行字符串

str1 = “”“abc
123"”"
print(str1)

str2 = ‘abc\n123’
print(str2)

4)字符串是有序

print(‘abc’ == ‘acb’) # False

2. 字符串中的元素 – 字符

“”"
1)普通字符 – 符号在字符串中表示符号本身的字符就是普通字符
2)转义字符 – 在特定符号前加\表示特殊功能或者特殊意义的字符
\n – 换行
\t – 水平制表符(相当于tab键)
’ – 表示一个普通的单引号
" – 表示一个普通的双引号
\ – 表示一个普通的反斜杠
“”"

\u4四的16进制数 – 编码字符(四的16进制数是字符的编码值)

str1 = ‘\tabc\n123’
print(str1)

str2 = ‘It’s OK’
print(str2)

str3 = “It’s OK”

str4 = “I say:“good!””
print(str4)

str5 = ‘C:User\name\test\小明’
print(str5)

str6 = ‘\u4e00abc’
print(str6)

3. 字符编码

“”"

  1. 计算机在存储数据的时候只能存数字(数字的二进制补码)
  2. 为了能够让计算机存储字符,给每个字符对应了一个固定数字。每次在存在这个字符的时候就存储这个字符对应的数字。
    每个字符对应的数字就是这个字符的编码值。
    “”"

4. 编码表 – 记录字符和数字对应关系的表

“”"
常用的编码表: ASCII码表、Unicode编码表(Python)

  1. ASCII码表:
    a. 只记录了美国的符号(这里没有记录中文)
    b. 数字字符在大写字母的前面,大写在小写字母的前面。并且这三类符号之间不连续。

  2. Unicode编码表:
    a. 是ASCII码表的扩展(包含了ASCII码表),记录了世界上所有的国家所有的民族的所有语言的符号
    b. 中文范围:4e00 ~ 9fa5
    “”"

5.编码值的使用

1) chr函数

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

print(chr(97)) # ‘a’
print(chr(0x5fa5)) # 徥

练习:打印所有中文
num = 0
for x in range(0x4e00, 0x9fa5+1):
num += 1
print(chr(x), end=’ ')
if num == 30:
print()
num = 0

print()

for x in range(0x2800, 0x28ff+1):
print(chr(x), end=’ ')
print()

2) ord函数

ord(字符) – 获取字符编码值

print(ord(‘余’), ord(‘婷’))

3) 编码字符

\u四位的16进制编码值

print(‘a\u0061’) # aa
c = ‘看’
if ‘\u4e00’ <= c <= ‘\u9fa5’:
print(‘中文!’)

if ‘一’ <= c <= ‘龥’:
print(‘中文!’)

1. 查 – 获取字符

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

str1 = ‘how are you? i am fine! thank you! and you?’
print(str1[2], str1[-1])

注意:一个转义字符的长度是1

str1 = ‘\tabc\n123\u4e00’
print(str1[1], str1[-2])
print(’————————————–’)
print(str1[1:6]) # ‘abc\n1’
print(str1[-1:2]) # ‘’
print(str1[1:7:2]) # ‘ac1’
print(str1[-1::-2]) # ‘一2\nb\t’
print(str1[2:]) # ‘bc\n123\u4e00’

print(’————————————–’)
for x in str1:
print(x)

2. +、*

print(‘abc’ + ‘hello’) # ‘abchello’
print(‘abc’ * 3) # ‘abcabcabc’
print(’===\n’ * 3)

3. 比较运算

“”"

  1. 两个字符串比较大小,比较的是第一对儿不相等字符的编码值的大小
  2. 两个字符比较大小,比较的是字符的编码值的大小
    已知字符X:
    判断是否是数字字符: ‘0’ <= X <= ‘9’
    判断是否是小写字母: ‘a’ <= X <= ‘z’
    判断是否是大写字母: ‘A’ <= X <= ‘Z’
    判断是否是字母: ‘a’ <= X <= ‘z’ or ‘A’ <= X <= ‘Z’
    判断是否是中文: ‘\u4e00’ <= X <= ‘\u9fa5’
    “”"
    print(‘abc’ == ‘acb’) # False
    print(‘abc’ > ‘Zbc123’) # True
    print(‘你好’ > ‘hello’) # True

练习1:已知一个字符串,统计字符串中中文出现的次数
str1 = ‘-==sh是uM09K你好!’
count = 0
for x in str1:
if ‘\u4e00’ <= x <= ‘\u9fa5’:
count += 1
print(‘中文出现的次数:’, count)

练习2:判断指定字符串是否是纯数字字符串
‘234445’ -> 是 ‘122h2333’ -> 不是
str1 = ‘23j4445’
for x in str1:
if not ‘0’ <= x <= ‘9’:
print(‘不是纯数字字符串’)
break
else:
print(‘是纯数字字符串’)

练习3: 提取字符串中所有的大写字母
‘-==sh是uM09K你好!’ -> ‘MK’
str1 = ‘-==sh是uM09K你好!’
str2 = ‘’
for x in str1:
if ‘A’ <= x <= ‘Z’:
str2 += x
print(str2)

  1. in 和 not in
    字符串1 in 字符串2 – 判断字符串1是否是字符串2的子串
    print(10 in [10, 20, 30]) # True
    print([10, 20] in [10, 20, 30]) # False

print(‘a’ in ‘abc123’) # True
print(‘abc’ in ‘abc123’) # True
print(‘ac’ in ‘abc123’) # False

5.相关函数
1)len(字符串)
2)str(数据) – 将数据转换成字符串(任何类型的数据都可以转换成字符串;转换的时候是直接在数据的打印值外面加引号)
x = 23
str(23) # ‘23’
str(12.5) # ‘12.5’
str(True) # ‘True’
str([10,20]) # ‘[10, 20]’
str({‘a’: 10, “b”: 20}) # “{‘a’: 10, ‘b’: 20}”

str

物联沃分享整理
物联沃-IOTWORD物联网 » 1. 什么是字符串(str)

发表评论