day9-字符串

字符串

1.什么是字符串(str)
  1. 字符串是容器型数据类型:将''/""/''''''/""""""作为容器的标志,里面直接是多个符号,每一个符号就是字符串的一个元素:‘元素1元素2元素3…’

  2. 字符串不可变;字符串是有序的

  3. 元素 - 所有的符号都可以作为字符串的元素,字符串中的元素又叫字符。字符分为普通字符和转义字符两种

1)字符串的元素(字符)可以是任意符号
str1 = 'sh三到四好【】[[;!423'
print(str1)		# sh三到四好【】[[;!423
2)空字符串
str2 = ''
str3 = ""
str4 = ''''''
str5 = """"""
print(len(str4), type(str4))		# 0 <class 'str'>
print(len(str5), type(str5))		# 0 <class 'str'>
3)多行字符串
str1 = """adc
123			====
"""
print(str1)

在这里插入图片描述

4)字符串是有序的
print('abc' == 'cba')		# False
2.字符串中的元素 - 字符
  1. 普通字符 - 符号在字符串中表示符号本身的字符就是普通字符
  2. 转义字符 - 在特定符号前加\ 表示特殊功能或者特殊意义的字符
  • \n - 换行
  • \t - 水平制表符(相当于tab键)
  • \' - 表示一个普通的单引号
  • \" - 表示一个普通的双引号
  • \\ - 表示一个普通的反斜杠
  • \u四的16进制数 - 编码字符(四的十六进制数是字符的编码值)
str1 = '\tabc\n123'
print(str1)

在这里插入图片描述

str2 = 'That\'s cool'
print(str2)				# That's cool
str3 = "It's OK"
print(str3)				# It's OK
str4 = 'I say:"cool!"'
print(str4)				# I say:"cool!"
str5 = 'C:User\\name\\test\\小明'
print(str5)				# C:User\name\test\小明
str6 = '\u4e00 abc'
print(str6)

在这里插入图片描述

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

基数:0 ~ 9

表示方式:直接写

转换函数:print()

num = 23498750
print(num)			# 23498750
2)二进制

基数:0 、1

表示方式:加前缀0b/0B

转换函数:bin()

num = 0b10011
print(num)			# 19
3)八进制

基数:0 ~ 7

表示方式:加前缀0o/0O

转换函数:oct()

num = 0o5461
print(num)			# 2865
4)十六进制

基数:0 ~ 9,a ~ f(A ~ F)

表示方式:加前缀0x/0X

转换函数:hex()

num = 0xff
print(num)			# 255
4.编码值 - 记录字符和数字对应关系的表

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

  1. ASCII码表:
    • 只记录了美国的符号(这里没有记录中文)
    • 数字字符在大写字母的面前,大写字母在小写字母的面前,并且这三类符号之间不连续
  2. Unicode编码表:
    • 是ASCII码表的扩展(包含了ASCII码表),记录了世界上所有的国家所有的民族的所有语言的符号
    • 中文范围:4e00 ~ 9fa5
5.编码值的使用
1)chr函数

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

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

练习:打印所有的中文

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

在这里插入图片描述

2)ord函数

ord(字符)

print(ord('李'), ord('云'), ord('龙'))

在这里插入图片描述

3)编码字符

\u四位的16进制编码值

c = '豅'
if '\u4e00' <= c <= '\u9fa5':
    print('中文')				# 中文

字符串相关操作和相关函数

1.查 - 获取字符

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

str1 = 'How are you? I am fine! Thank you, and you?'
print(str1[2], str1[-1])		# w ?
注意:一个转义字符的长度是1
str1 = '\tabc\n123\u4e00'
print(str1[1], str1[-2])		# a 3
print(str1[1:6])
print(str1[-1:2])
print(str1[1:7:2])
print(str1[-1::-2])
print(str1[2:])

在这里插入图片描述

for i in str1:
    print(i)

在这里插入图片描述

2.+、*
print('abc' + 'hello')			# abchello
print('abc' * 3)				# abcabcabc
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' == 'cba')		# False
print('abc' > 'Abc123')		# True
print('你好' > 'hello')		# True

练习1:已知一个字符串,统计字符串中中文出现的次数

str1 = '-==sh是uM09K你好!'
count = 0
for i in str1:
    if '\u4e00' <= i <= '\u9fa5':
        count += 1
print('中文出现的次数:', count)		# 中文出现的次数:3

练习2:判断指定字符串是否是纯数字字符串

str1 = input('输入一个字符串:')
for i in str2:
    if not '0' <= i <= '9':
        print('不是纯数字字符串')
else:
    print('是纯数字字符串')

在这里插入图片描述

练习3:提取字符串中所有的大写字母

str1 = '-==sh是uM09K你好!'
str2 = ''
for i in str1:
    if 'A' <= i <= 'Z':
        str2 += i
print(str2)				# MK
4.in 和 not in

字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串

print('a' in 'abc123')			# True
print('abc' in 'abc123')		# True
print('ac' in 'abc123')			# False
5.相关函数
  1. len(字符串)
  2. str(数据) - 将数据转换成字符串(任何类型的数据都可以转换成字符串;转换的时候是直接在数据的打印值外面加引号)
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}"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值