202200606 字符串学习总结

202200606 字符串学习总结

1.字符编码

1.1 编码表

1)ASCII
总共128个字符(美国码);
数字在大写字母的前面(A-65);大写字母在小写字母的前面(a-97);大写字母和小写字母之间有其他的符号
2)unicode(python)
Unicode是包含了ASCII表,是ASCII的拓展,完全包含了ASCII表
Unicode包含了世界上所有国家所有民族所有语言对应的符号(总共6万多个符号) - 万国码
中文的编码范围:4e00 ~ 9fa5(十六进制:0-9,a-f)

1.2.字符编码值在python中的应用

1)编码值相关函数
a. chr(编码值) - 获取指定编码值对应的字符
b. ord(print字符) - 获取指定字符对应的编码值

print(chr(97))#'a'
print(chr(65))#'A'

注意:在程序中直接使用十六进制数:0x数字

print(ord('张'),ord('娜'),ord('娜'))#24352 23068 23068
print(ord('邓'),ord('航'))#37011 33322

eg:将输入的小写字母转换成对应的大写字母(m -> M)

a = input('请输入一个小写字母')
b = chr(ord(a) - 32)
print(b)

练习:M转m

print(chr(ord('M') + 32))#m

2)编码字符;\u四位的16进制编码值
每一个字符在字符串中表示的时候有两种表示方式:a.直接写字母 b.写编码字符

str1 = '一'
print(str1)# 一
str1 = '一\u4e00'
print(str1)#一一
str1 = '一\u4e00a'
print(str1)#一一a
str1 = '一\u4e00a\u0061'
print(str1)#一一aa
x = 'a'
print('\u4e00' <= x <= '\u9fa5')#False
x = '一'
print('\u4e00' <= x <= '\u9fa5')#True

2.字符串基本操作

2.1 查

获取字符串中的元素(字符)
字符串获取字符的方法和列表获取元素的方法是一样的
1)查单个

str1 = 'Python'
print(str1[0])#P
print(str1[-1])#n
# print(str1[6])        # IndexError: string index out of range

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

str1 = '\u4e00abc\n123'
print(str1[1])#a	

2)切片

str1 = 'you see see,one day day!'
print(str1[0:-3:2])# yuseseoedy
print(str1[4:-1:-1])# ''
print(str1[-4:])# day!

3)遍历

for x in 'python':
    print(x)
str1 = 'python'
for index in range(len(str1)):
    print(index + 1, str1[index])
```
1 p
2 y
3 t
4 h
5 o
6 n
```
str1 = 'python'
for index, item in enumerate(str1):
    print(index, item)
```
0 p
1 y
2 t
3 h
4 o
5 n
```

2.2 相关操作

1)+ *

print('abc'+ 'python')# abcpython

str1 = 'java'
str2 = 'python'
print(str1 + str2)#javapython

print(str2* 3)# pythonpythonpython

2)比较运算
判断字符的性质:
是否是数字:‘0’ <= x <= ‘9’
是否是字母:‘a’ <= ‘z’ or’A’ <= ‘Z’
是否是中文:‘\u4e00 <= x <= \u9fa5’

print('abc' == 'bac')# False
#比较大小:字符串比较大小比较的是第一对不相等的字符的编码值的大小
print('amn' > 'RFKMMMMM')# True
print('你好'> 'hello')# True

eg:
练习:统计字符串str1中数字的个数
str1 = ‘ans随机数23sjjKhs8902-==28’

str1 = 'ans随机数23sjjKhs8902-==28'
count = 0
for x in str1:
    if '0' <= x <= '9':
        count += 1
print(count)#8
  1. in 和 not in
    字符串1 in 字符串2 - 判断字符串2中是否存在字符串1
print('a' in 'abc')# True
print('ab' in 'abc')# True
print('bc' in 'abc')# True
print('ac' in 'abc')# False

3.相关函数

address = '\t成都市武侯区肖家河沿街38号肖家河大厦'
print(sorted(address))#['\t', '3', '8', '侯', '区', '厦', '号', '大', '家', '家', '市', '成', '武', '河', '河', '沿', '肖', '肖', '街', '都']

3.1len(字符串)

统计字符串中字符的个数(其中转义字符的长度为1)

address = '\t成都市武侯区肖家河沿街38号肖家河大厦'
print(len(address))#20

3.2str(数据)

将指定数据转换成字符串
1)所有类型的数据都可以转换成字符串
2)转换的时候,直接在数据的打印值的外面加引号
100 -> ‘100’ 12.5 -> ‘12.5’ True -> ‘True’
Question:[10,20,30] -> ?
Answer:‘[10, 20, 30]’

list1 = [10,20,30]
print(list1)#[10, 20, 30]
dict = {'a': 10, "b": 20, 'c': 30}
print(dict)#{'a': 10, 'b': 20, 'c': 30}

4.字符串格式化

字符串格式化主要用来解决字符串中部分内容变化的情况
eg:
创建’xxx今年xx岁!'格式的字符串
1方法1 - 使用+做字符串拼接

name = input('请输入你的姓名:')
age = int(input('请输入你的年龄:'))
print(massage)massage = name + '今年'+ str(age) + '岁'

2.方法2 - 使用格式字符串
格式字符串 - 包含格式占位符的字符串
格式字符串:包含格式占位符的字符串 % (data1, data2, data3, …)
说明:
1)格式占位符
%s - 字符串占位符;可以给任何类型的数据占位
%d - 整数占位符;可以给任何数字占位
%f - 浮点数占位符;可以给任何数字占位 (%.Nf - 控制保留N位小数)

2)()中的数据和前面字符串中的占位是一一对应

name = '小娜'
age = 18
money = 20000
massage = '%s今年%d,月薪:%f元。'% (name,age,money)
print(massage)小娜今年18,月薪:20000.000000元。
name = '小娜'
age = 18
money = 20000
massage = '%s今年%d,月薪:%.2f元。'% (name,age,money)
print(massage)#小娜今年18,月薪:20000.00元。

num1 = 19
num2 = -2.3
str1 = 's;%s, d:%d, f:%f'%(num1, num1, num1)
print(str1)# s;19, d:19, f:19.000000
str1 = 's;%s, d:%d, f:%.f'%(num2, num2, num2)# %.f:取整数
print(str1)# s;-2.3, d:-2, f:-2
str1 = 's;%s, d:%d, f:%.2f'%(num2, num2, num2)# %.2f取两位小数
print(str1)# s;-2.3, d:-2, f:-2.30

3.方法3 - f字符串(f-string)
语法:f’{提供数据的表达式}’
f-string的使用原则:在字符串中用{}来表达字符串中变化的部分,{}中表达式的值就是变化内容

name = '娜娜'
age = 18
money = 10000000
str1 = '{name}'
print(str1)# {name}
str2 = f'{name}'
print(str2)# 娜娜
massage = f'{name}今年{age}岁,月薪:{money}元'
print(massage)# 娜娜今年18岁,月薪:10000000元

#1) 使用灵活
money = 5670
massage = f’年薪:{money * 13}元’
print(massage)# 年薪:73710元

#2) 功能强大
a.控制小数位数{提供数据的表达式:.Nf}

money = 5670
massage = f'年薪:{money * 13:.2f}元'
print(massage)# 年薪:73710.00元

b.大数据分段显示(提供数据的表达式:,)
1,000
15,000

money = 5670
massage = f'年薪:{money * 13:,}元'
print(massage)# 年薪:73,710元
massage = f'年薪:{money * 13:,.2f}元'
print(massage)# 年薪:73,710.00元

c.百分比显示:{提供数据的表达式:N%}

rate = 0.236
message = f'增长率:{rate}'
print(message)# 增长率:0.236
rate = 0.236
message = f'增长率:{rate:.2%}'
print(message)# 增长率:23.60%
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Denis_1412

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

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

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

打赏作者

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

抵扣说明:

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

余额充值