python基础知识(字符串) - day10

python基础知识(字符串) - day10

计算机存储数据只能存数字(存的是数字的二进制补码)

1.字符编码

为了能够让计算机存储文字符号,给每个符号对应了一个固定的数字,每次在需要存储这个符号的时候,就去存储这个固定的数字。
每个对应的那个数字就是这个符号的编码值。

2.编码表 - 保存字符和字符对应编码值的表

1)ASCII码表
美国信息码(只包含了美国人常用的符号,总共128)
数字字符
大写字母 - (A - 65)
小写字母 - (a - 97)
英文输入法下的特殊符号

2)Unicode编码表(Python) - 包含了世界上所有的国家所有的民族的所有的语言符号
Unicode编码表包含了ASCII(前128个字符就是ASCII码表中的内容)
中文编码范围:4e00 ~ 9fa5

3.编码值的应用

  • 1)chr(编码值) - 获取编码值对应的字符
print(chr(97))  # 'a'
print(chr(0x4e00))  # '一'
print(chr(0x9fa5))  # '龥'

# from pypinyin import pinyin, lazy_pinyin

# print(pinyin('龥'))
print('-' * 60)

# for x in range(0x4e00, 0x9fa5 + 1):
#     print(chr(x), lazy_pinyin(chr(x)), end=' ')

# for i in range(0x1100, 0x11ff + 1):
#     print(chr(i), end=' ')
  • 2)ord(字符) - 获取指定字符对应的编码值
    注意:字符指的是长度为1的字符串
print(ord('李'))  # 26446
print(ord('华'))  # 21326

# 案例:将char对应的小写字母转换成大写字母
char = 'm'
# m -> M
print(chr(ord(char) - 32))
  • 3)编码字符: \u4位的16进制编码值

  • 在字符串中提供字符的方式有两种:a.直接提供字符 b.使用编码字符
    hex(10进制) - 获取指定数字对应的16进制表示方式
    str1 = 'ab你好'

  • 如果知道字符编码值是多少,但是不知道字符是什么的时候,就可以使用编码字符来表示这个字符

str2 = '\u0061\u9fa5'
print(str2)

char = 'j'
if '一' <= char <= '\u9fa5':
    print(char, '是中文字符')
else:
    print(char, '不是中文字符')

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

  1. 获取单个字符
    字符串[下标]
  • 注意:转义字符的长度是1
str1 = '\thello\nworld!\u9fa5'
print(str1[5])
print(str1[-1])
  1. 字符串切片
    字符串[开始下标:结束下标:步长]
str2 = 'good good study!'
print(str2[1:-2:2])  # 'odgo td'
print(str2[-3:])  # dy!

print('-'*60)
  1. 遍历字符串
# 1
for x in str2:
    print(x)

print('-'*60)

# 2
for index in range(len(str2)):
    print(index)

print('-'*60)

# 3
for index, item in enumerate(str2):
    print(index, item)

字符串相关方法 - 字符串.xxx()

  • 字符串.join() - 将序列中的元素用指定的字符串连接成一个新的字符串(序列中的元素必须全部都是字符串)
list1 = ['小明', '张三', '李四', '王五']
result1 = '+'.join(list1)
result2 = ' and '.join(list1)

result3 = '+'.join('abc')

nums = [90, 80, 59, 77]

result = '+'.join([str(x) for x in nums])
print(result)  # '90+80+59+77'
print(eval(result))
  • 字符串.count(字符串2) - 统计字符串1中字符串2的个数
msg = 'how are you? i am fine! thank you, and you?'
result = msg.count('a')
print(result)
print(msg.count('h'))
  • 字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割
  • 字符串1.split(字符串2, N) - 将字符串1中前N个字符串2作为切割点对字符串1进行切割
msg = 'how are you? i am fine! thank you, and you?'
result = msg.split('you')
print(result)

result = msg.split(' ')
print(result)

result = msg.split(' ', 4)
print(result)

print('-' * 60)
  • 字符串.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3
  • 字符串.replace(字符串2, 字符串3, N) - 将字符串1中前N个字符串2都替换成字符串3
msg = 'how are you? i am fine! thank you, and you?'
result = msg.replace('you', 'me')
print(result)

result = msg.replace('you', '')
print(result)

result = msg.replace('you', '+', 2)
print(result)

print('-' * 60)
  • 字符串.strip() - 去掉字符串前后的空白字符
msg = '    how are you? i am fine! thank you, and you?     '
result = msg.strip()
print(result)

msg = '/123/'
result = msg.strip('/')
print(result)

print('-' * 60)
  • 字符串.isupper() - 判断字符是否是纯大写字母字符串
    print('NAKED'.isupper())

  • 字符串.islower() - 判断字符是否是纯小写字母字符串
    print('gads'.islower())

  • 字符串.isdigit() - 判断字符或者字符串是否全是数字字符
    print('9'.isdigit())

  • 字符串.upper() - 将字符串中小写字母转换成大写字母

print('hd画的好'.upper())
print('m'.upper())
  • 字符串.lower() - 将字符串中大写字母转换成小写字母

# 案例:判断char是否是字母
char = 's'
if char.islower() or char.isupper():
    print('是字母')
else:
    print('不是字母')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值