day10-字符串综合用法

文章介绍了计算机中字符编码的基本原理,如ASCII码和Unicode,以及如何通过编码值来表示和转换字符。同时,它详细阐述了Python中对字符串的操作,包括获取字符、编码值的转换、字符串的加法和乘法运算、比较和性质判断,以及字符串相关的方法,如join、split、replace等。最后提到了格式化字符串和f-string的使用。
摘要由CSDN通过智能技术生成

字符串综合用法

字符编码

  • 二极管,导通来控制电路,只有0和1两个状态

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

  • 为了你能让计算机存储文字符号,给每个符号对应了一个固定的数字,每次在需要存储这个符号的时候,

    • 存储这个固定的数字,每个对应的那个数字就是这个符号的编码值
  • 编码表 - 保存字符和字符对应编码值的表

    • ASCII码表 美国信息码 (只包含美国人常用的符号 总共128个)
    • 大写字母(A-65)
    • 小写字母(a-97)
    • 0-48
  • Unicode编码表 是对ASCII码表的扩展,包含了世界上所有国家所有名族的所有语言符号

    • Unicode编码表包含了ASCII(前128字符就是ASCII码表中的内容)

    • 中文编码范围:4e00 ~ 9fa5 (2万多个)

    • ox 加十六进制

    • 0000~FFFF编码范围

print(chr(97))  #'a'
print(chr(0x4e00))  #'一'
print(chr(0x9fa5))  #'龥'
  • 编码值的应用
    • chr(编码值) -获取编码值对应的字符
    • ord(字符) -获取指定字符对应编码值
    • 注意:字符值是长度为1 的字符串
#2 ord
#用char 将小写字母转换成大写字母
char = 'a'
print(chr(ord(char)-32))
  • \u 位的16进制编码值
  • hex(10进制数) -获取指定数字对应的16进制的表达方式
#如果知道字符编码值是多少,但是不知道字符是什么的时候,就可以使用编码字符来表示
str2='\u0061\u9fa5'
print(str2)

char ='是'
if '\u4e00'<=char<='\u9fa5':
    print(char,'是中文字符')

获取字符

  • 获取单个: 字符串[下标] 注意:字符串[开始下标:结束下标:步长]
str = '\thello\nworld!\u9fa5'
print(str[5]) #o
print(str[-1])  #龥

str1='hello world !'
for x in str1:
    print(x)

for x,y in enumerate(str1):
    print(x,y)

字符串运算

  • 加法运算:让两个字符串合并在一起
  • 乘法运算:字符串*N 让字符串重复N次
  • 比较运算:比较第一对不相等的字符的编码值的大小
判断字符的性质:
是否是数字  '1' <= x <='9'
是否是中午: ’\u4e00‘ <= x <= '\u9fa5' 或者 '一' <= x <= '\u9fa5'

  • str(数据) -任何类型的数据都可以转成字符串;在数据的 打印值 外面加引号
  • eval(字符串) -去掉字符串的引号,获取引号中表达式的结果
#字符合法才行
#b=eval('abc')   # b=abc  报错


b1=eval('10+2')
print(b1)  #12

a = int(input('输入a:'))
b= int(input('输入b:'))
s=input('输入操作')
c=eval(s)
print(c)

字符串相关方法

  • 字符串.join(序列) -将序列中的元素用指定的字符串连接成一个新的字符串
  • 序列中元素必须字符串
list1 = ['小明', '张三', '李四']
result = '+'.join(list1)
print(result)  #小明+张三+李四

nums = [11, 2, 44, 55, 66]
result = ' + '.join([str(x) for x in nums])
print(result)  # 11 + 2 + 44 + 55 + 66
  • 字符串1.count(字符串2) -在字符串1中统计字符串2的数量
  • 字符串1.spli(字符串2) -将字符串1中所有的字符串2作为切割点对字符1进行切割
  • 字符串1.spli(字符串2,N)-将字符串1中前N个字符串2 作为切割点
mag = 'how are you? i am fine thank you ,and you ?'
result = mag.split('you')
print(result)  # ['how are ', '? i am fine thank ', ' ,and ', ' ?']
  • 字符串1.replace(字符串2,字符串3) -将字符串1中所有字符串2都替换成字符串3
  • 字符串1.replace(字符串2,字符串3,N) -将字符串1中前N个字符串2都替换成字符串3
  • 字符串.strip( ) -去掉字符串前后的空白字符
msg= """ 
        
        how are you? i am fine thank you ,and you ?    
"""
print(msg.strip())

msg = '小/明/'  #去掉前后字符
print(msg.strip('/'))  #小/明
  • 字符串.isupper( ) -判断字符串是否是纯大写字母字符串
  • 字符串.islower( ) -判断字符串是否是纯小写字母字符串
  • 字符串.isdigiy( ) -判断字符或者字符串是否全是数字字符串
  • 字符串.upper( ) -小写转换成大写字母
  • 字符串.lower( ) -大写转化成小写字母

格式字符串

  • 占位符 % (数据1,数据2…) - ( )中的数据必须和前面占位符一一对应
  • 常见的占位符:
    • %s -给任何类型的数据占位
    • %d -给数字占位(整数占位符,给小数,会变成整数)、
    • %f -小数占位符
    • %.Nf -控制保留N位小数,默认保留6位小数
# msg = '%s今年%s岁,月薪:元' % (name,age)
# print(msg)


result = 'x:%.2f' % 3.1123
print(result)  #x:3.11

result = '%s年-%d时-%.2f分' % (2023-3-17,17,40)
print(result)  #2003年-17时-40.00分

f - string

  • 字符串最前面(引号前面)加f,就可以在字符串通过{表达式}中表达式的结果来给字符串提供内容
    • {表达式:.Nf} -控制保留N位小数
    • {表达式:.N%} -控制数字显示成百分比,N控制百分比的小数位数
    • {表达式:,.Nf} -控制数字显示百分比,N控制小数位数 (¥)
a=100
b=2
print(f'{a}+{b}={a+b}')  #100+2=102

#百分比
c = 0.98
print(f'{c:.0%}')   #98%

a=102304
print(f'{a:,.2f}') #102,304.00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值