python的字符串、字符编码、字符串基本操作、字符串的相关方法

物联网技术(AIR780E cat1-4G模块+小程序+腾讯云MQTT)驱动的智能井盖系统设计(连载01) 终端设备采用AIR780E模块作为主控器,电子模块有三轴加速度传感器、可燃气体传感器,AIR780E模块(4G模块)通过MQTT通信协议进行数据打包上传至EMQX服务器,在EMQX服务器中,用户可以自行订阅主题和发布主题,小程序通过MQTT通信协议订阅EMQX服务器的主题,服务器通过接收到硬件发布的数据,转发到微信小程序。 阅读详情

一、字符串

1.什么是字符串(str)

容器型数据类型; 将''、""、''''''、""""""作为容器的标志里面的每个符号就是字符串中元素。
不可变的(不支持增删改);有序的(支持下标操作)

元素(字符):可以是任何文字符号, 包括:数字、字母、汉字、日文、韩语、表情符号、标点等

任何文字符号都可以是字符串的元素
str1 = '10,20,30'
str2 = '12,=)*mksJkH胡上课😁❀'
三个引号开头三个引号结束的字符串,在字符串中可以直接按回车换行
str3 = "abc\n123"
print(str3)

str4 = '''abc
123'''
print(str4, type(str4))

2. 转义字符

字符 - 字符串中的元素(字符串每一个独立的符号)
字符串中的字符可以分为两种:普通字符、转义字符

1)普通字符: 在字符串中表示符号本身的字符
2)转义字符: \和指定的一些符号组合在一起表示特殊功能或者特殊意义的字符。
转义字符是C语言创建的,但是很多都已经没有存在的价值的,目前常用的转义字符:

\n      -       换行
\t      -       水平制表符(相当于按一次tab键)
\'      -       表示一个普通的单引号
\"      -       表示一个普通的双引号
\\      -       表示一个普通的反斜杠
\u四位的十六进制数 - 编码字符
str5 = 'abcKH1234,😁'
print(str5)
并不是\和所有符号组合都可以变成转义字符
str6 = '\m\k\l'
print(str6)  # \m\k\l
有一些C语言中的转义字符,在其他编程语言中无效
str7 = '=\a=\f='
print(str7)

str8 = '\tabc\n123'
print(str8)

str9 = 'it\'s me'
str10 = "it's me"

str11 = "i say: \"you see see, one day day!\""
print(str11)

str12 = 'i say: \"you see see, one day day!\"'

str13 = '\\name\yuting\论文.txt'
print(str13)

# 编码字符
str14 = '\u4e01abc'
print(str14)

3.r-string(r字符串)

在字符串的最前面加r或者R,可以让字符串中所有的转义字符功能消失(让字符串中的所有字符自动变成普通字符)

str1 = r'\tabc\n123\''
print(str1)

path = R'C:\ser\test\name\yuting\demo\t.txt'
print(path)

二、字符编码

1. 编码值

计算机存储数据的时候只能存数字(存的是数字对应的二进制的补码);
为了能够让计算机存储字符,给每个字符对应一个固定的数字,每次需要存储这个字符的时候就去存这个数字;
每个字符对应的那个数字就是这个字符的编码值。

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

1)ASCII码表 - 有128个字符对应的编码值(只要包含英文符号和其他西欧语言对应的符号)
数字字符0~9从48开始连续递增
大写字母A~Z从65开始连续递增
小写字母a~z从97开始连续递增

2)Unicode编码表(Python) - 是ASCII码表的扩展(包含了ASCII码表),包含了世界上所有国家所有民族所有语言的对应的符号(统一码、万国码)
中文范围:4e00 ~ 9fa5

3.Python程序对编码值的应用

1)chr(编码值) - 获取指定编码值对应的字符
print(chr(97), chr(65))
打印所有的大写字母
for x in range(65, 65+26):
    print(chr(x))


print(chr(0x4e00), chr(0x9fa5))

for x in range(0x4DC0, 0x4DFF+1):
    print(chr(x), end=' ')
print()
2)ord(字符) - 获取指定字符对应的编码
注意:字符指是长度为1的字符串
print(ord('余'), ord('婷'))
print(hex(20313), hex(23159))

print(ord('a'))
3)编码字符: \u四位的十六进制数
程序中给字符串提供字符的时候有两种方式:a.直接提供符号本身 b.通过字符对应的编码字符来提供(\u字符的16进制编码值)
str1 = 'a余'
str2 = '\u0061\u4f59'
print(str1, str2)
编码字符的使用场景:知道字符编码值,但是不知道字符的情况下,想要在字符串中提供这样一个字符
print('在Unicode编码表中最后一个中文是:', '\u9fa5')

三、字符串基本操作

1.查 - 获取字符串中的字符

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

1)获取单个字符
str1 = 'good good study! day day up!'
print(str1[3], str1[-2])
注意:不管转义字符的功能是什么,在计算字符串长度的时候一个转义字符的长度是1
str2 = '\tabc\n123\u4e00m'
print(str2[1], str2[-3])
2)切片
message = '小明的电话号码是:13678192303'
print(message[-11:])            # '13678192303'
print(message[3:-2:-2])         # ''
print(message[1:-1:2])          # '明电号是16893'
3)遍历
str3 = 'hello python!'
for x in str3:
    print(x)


for x in range(len(str3)):
    print(x, str3[x])


for index, item in enumerate(str3):
    print(index, item)

2. 数学运算:+、*

1) 字符串1 + 字符串2

将两个字符串合并产生一个新的字符串(字符串拼接)

str1 = 'hello'
str2 = 'world!'
str3 = str1 + ' ' + str2
print(str3)
2) 字符串 * N

将字符串重复N次产生一个新的字符串

str4 = str1 * 3
print(str4)

案例:提取字符串中所有数字字符

# 'abc12MK89你好9'   ->  '12899'
str1 = 'abc12MK89你好9'
new_str = ''
for x in str1:
    if '0' <= x <= '9':
        new_str += x
print(new_str)      # '12899'

# ''+'1' -> '1' + '2' ->'12' + '8'  -> '128' ...

案例:在字符串中两个字符之前插入*

# 'abc12'  ->  'a*b*c*1*2'
str1 = 'abc12'
new_str = ''
for x in str1:
    new_str += x + '*'

print(new_str[0:-1])

练习:将字符串中所有的数字字符都替换成*

# 'ab2Mk89你好8'  ->  'ab*Mk**你好*'
str1 = 'ab2Mk89你好8'
new_str = ''
for x in str1:
    if '0' <= x <= '9':
        new_str += '*'
    else:
        new_str += x
print(new_str)      # 'ab*Mk**你好*'

3.比较运算:>、<、>=、<=、==、!=

1)判断相等:两个一模一样的字符串才相等
print('abc' == 'acb')       # False
2)比较大小: 两个字符串比较大小,比较的是第一对不相等的字符的编码值的大小

已知字符x:
判断x是否是数字字符: ‘0’ <= x <= ‘9’
判断x是否是小写字母: ‘a’ <= x <= ‘z’
判断x是否是大写字母: ‘A’ <= x <= ‘Z’
判断x是否是字母: ‘a’ <= x <= ‘z’ or ‘A’ <= x <= ‘Z’
判断x是否是中文: ‘\u4e00’ <= x <= ‘\u9fa5’

print('MKAHDJSS' > 'abc')       # False

练习:分别统计字符串中中文和大写字母的数量

str1 = 'shfa换手机223--=2MjshUj行HSJSA'
count1 = count2 = 0
for x in str1:
    if '\u4e00' <= x <= '\u9fa5':
        count1 += 1
    elif 'A' <= x <= 'Z':
        count2 += 1
print(count1, count2)

4. in 和 not in

字符串1 in 字符串2

判断字符串1是否是字符串2的子串(判断字符串2中是否包含字符串1)

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('ab1' in 'abc123')        # False

5. str(数据) - 将指定数据转换成字符串

所有类型的数据都可以转换成字符串,转换的时候是在数据的打印值外面加引号

print(100)
str(100)        # '100'

list1 = [10,20,30]
print(list1)        # [10, 20, 30]
str(list1)     # '[10, 20, 30]'

list2 = ["abc", 100]
print(list2)
str(list2)      # "['abc', 100]"

dict1 = {"a":10,'b':20, 'c':"abc"}
print(dict1)
str(dict1)      # "{'a': 10, 'b': 20, 'c': 'abc'}"

四、字符串的相关方法

1. 必须掌握的字符串相关方法(一级)

1) 字符串.join(序列)

用指定字符串将序列中元素拼接成一个字符串(序列中的元素必须是字符串)

result = '+'.join(['name', 'age', 'gender'])
print(result)       # name+age+gender

result = '=='.join('abc')
print(result)       # a==b==c

nums = [10, 20, 30, 40]
# '10+20+30+40'
result = '+'.join([str(x) for x in nums])
print(result)       # '10+20+30+40'


list1 = [10, 'abc', '你好', 1.23, True, '手机壳']
# 'abc你好手机壳'
result = ''.join([x for x in list1 if type(x) == str])
print(result)       # 'abc你好手机壳'

练习:将列表中每个元素的第一个字符提取出来形成一个新的字符串:

# ['name', 'age', 'gender']  -> 'nag'
list1 = ['name', 'age', 'gender']
result = ''.join([x[0] for x in list1])
print(result)
2) split

字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割
字符串1.split(字符串2, N) - 将字符串1中前N个字符串2作为切割点对字符串1进行切割

str1 = '123abc你好abc===abc+++'
result = str1.split('abc')
print(result)       # ['123', '你好', '===', '+++']

result = str1.split('a')
print(result)       # ['123', 'bc你好', 'bc===', 'bc+++']

result = str1.split('abc', 2)
print(result)       # ['123', '你好', '===abc+++']

注意:如果切割点连续出现或者切割点在字符串的开头或者结果,切割的结果中会出现空串

str1 = 'abc123abcabc你好abc===abc+++abc'
result = str1.split('abc')
print(result)       # ['', '123', '', '你好', '===', '+++', '']
3)

字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3
字符串1.replace(字符串2, 字符串3, N) - 将字符串1中前N个字符串2都替换成字符串3

message = 'how are you? i am fine! thank you! and you?'
result = message.replace('you', 'me')
print(result)       # how are me? i am fine! thank me! and me?

result = message.replace('you', 'me', 1)
print(result)       # how are me? i am fine! thank you! and you?

案例:删除字符串message中所有的空格符号

result = message.replace(' ', '')
print(result)       # howareyou?iamfine!thankyou!andyou?
4)

字符串.strip() - 删除字符串前后两端的空白字符
字符串.strip(字符集) - 删除字符串前后两端的指定所有字符

str1 = '''
     你 好,世 界                     
     
    '''

result = str1.strip()
print(result)
print('====')

str2 = '/+//////u/重/庆////////a////++///////++//////'
result = str2.strip('/+')
print(result)
5)

字符串1.find(字符串2) - 获取字符串2第一次出现在字符串1中的位置,如果字符串2不存在返回-1
字符串1.index(字符串2) - 获取字符串2第一次出现在字符串1中的位置,如果字符串2不存报错

message = 'how are you? i am fine! thank you! and you?'
print(message.find('you'), message.index('you'))

print(message.find('abc'))      # -1
# print(message.index('abc'))   # 报错

字符串1.find(字符串2, 开始下标, 结束下标) - 在字符串1中指定范围内查找字符串2第一次出现的位置, 如果找不到返回-1
字符串1.index(字符串2, 开始下标, 结束下标) - 在字符串1中指定范围内查找字符串2第一次出现的位置, 如果找不到报错

message = 'how are you? i am fine! thank you! and you?'
print(message.find('you', 0, 8))        # -1
print(message.find('you', 11))          # 30

字符串1.rfind(字符串2) - (从后往前找)
字符串1.rindex(字符串2) - (从后往前找)

message = 'how are you? i am fine! thank you! and you?'
print(message.rfind('you'))     # 39

2.尽可能记住的字符串相关方法

# 1) count
# 2) isdigit()
# 3) islower()、isupper()
# 4)lower()、upper()
# 5)maketrans()、translate()
# 6)rjust()、ljust、center、zfill
【时时三省】tessy 单元测试 之 CTE(The Classification Tree Editor) 的使用 有图有文字详细介绍利用 CTE界面中的树 批量产生用例。 阅读详情

相关推荐

有限元之有限元空间的构造

主要介绍有限元的空间构造方法

欢迎各位大佬光临“寒舍”!请多多指点,共同进步! 724

字符串总结,9.29

字符串总结

qsh18380478760的博客 549

Python 爬虫实战:深入同花顺,抓取股票行情数据,助力投资决策

通过本次 Python 爬虫实战,我们成功地从同花顺抓取了股票行情数据,并进行了存储、处理、分析和可视化展示。在这个过程中,我们不仅掌握了爬虫技术的基本应用,还学会了如何对动态加载的数据进行处理和分析。然而,本次爬虫任务也存在一些局限性,例如仅爬取了部分股票的数据,且未对股票的历史行情进行深入分析。在未来的工作中,我们可以进一步优化爬虫程序,爬取更多股票的数据,并深入分析股票的历史行情走势、技术指标等,为投资者提供更有价值的数据支持。

u014481728的博客 5264

python 中 r+string的用法

python中,字符串前加r代表此字符串为原样显示,不转义。例:字符串'\n'可转义为换行,若其前加上字母r,即r'\n',则不进行转义,结果将原样显示'\n' 代码:>>> print '***\n\t***' *** *** >>> print r'***\n\t***' ***\n\t*** >>>

songping_linxing的专栏 3050

Python中的r字符串前缀及其用法详解

Python中,r字符串前缀是一种用于表示原始字符串的特殊前缀。它可以消除转义字符的特殊含义,使字符串中的每个字符都按照字面意义进行解释。r字符串前缀在处理包含特殊字符的字符串、处理正则表达式和处理文件路径时非常有用。但需要注意,r字符串前缀只适用于字符串字面值,不能用于变量或表达式。此外,r字符串前缀只影响字符串本身,不影响字符串中的变量或表达式的解释。希望本篇博客能够帮助你理解r字符串前缀的概念和用法,并在实际的Python编程中能够灵活运用。如果你有任何问题或疑惑,欢迎在评论区留言,我会尽力解答。

博客 1万+

Python字符串 u"string",r"string"的写法含义

1、字符串前加 u = unicode编码   例:u"我是含有中文字符组成的字符串。"   作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。   PS:不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行。一般英文字符在使用各种编码下,,基本都可以正常解析, 所以一般不带u。 2、字符串前加 r = ...

weixin_34414196的博客 848

r 叫 原始字符串(raw string),表示里面的 \ 不会被转义

现象原因多个r"..."连续写Python 自动拼接多个字符串为什么不用逗号因为这不是多个值,是一个字符串在拼接为什么加r保证正则里的不会出错(原始字符串

陈开心的博客 559

python字符串(Str)

字符串python中最常用的数据类型,在整个变成阶段都起到了关键性的作用。

啊?这个人,居然也写代码啊…… 6685

Python 教程 - 字符串

字符串Python 的一种数据类型,它可以通过单引号、双引号、三引号'''或"""来定义,本节我们来详细介绍一下。

深入Java世界:探索编程之美与技术深度 271

Python学习笔记09 - 字符串

字符串

Wendy_wyw的博客 311

Python 字符串操作详解

Python 中,字符串可以用单引号' '或双引号" "来定义。示例代码# 使用单引号定义字符串# 使用双引号定义字符串print(single_quoted_string) # 输出: Hello, World!print(double_quoted_string) # 输出: Hello, World!

licy__的博客 603

字符串-day9-10

字符串(str)是容器型数据类型;将’‘或者""(’‘’‘’'、“”“”“”)作为容器的标志,里面的每一个符号就是字符串中的每个元素,不可变的(不支持增删改)、有序的(支持下标) 元素:引号中的每个独立的符号都是字符串中的元素,生活中的任何文字符号都可以作为字符串的元素, 包括:数字(012…)、字母(abc…)、中文、日语、朝鲜语、…、表情(🍑😁♥)等字符串中的元素就叫字符 字符串中的字符分为两类:普通字符和转义字符在字符串中表示符号本身的字符就是普通字符在字符串中表示的不是符号本身的字符 3)r字符..

weixin_59716295的博客 1525

总结8(字符串

【代码】总结8(字符串

2303_76909967的博客 150

day10-字符串(续)

字符串

HunterQAQ的博客 152

day10字符串学习总结

字符串总结

qq_56490673的博客 128

3.11 总结加作业

字符串 1、什么是字符串 字符串是容器型数据;将’’,"","""""",’’’’’'作为容器标准,里面的每个符号都是字符串的元素 不可变;有序 元素:字符串的元素就是引号中的每一个基本符号,元素又叫字符;字符分为普通字符和转义字符。 str1='jl;还是s8*333333ok12' # 没办法用enter换行 str2="ji23333#" # 没办法用enter换行 str3=""" qweweqwr 123""" # 可以随便换行 print(type(str1)) # <class

CHENLIMING11的博客 596

R-字符串

字符串 文本数据存储在字符向量中(或字符数组中,虽然这比较少见) 字符向量中的每个元素都是字符串,在R中,“字符串”是个常用的非正式术语,因为正式的“字符向量元素”读起来相当拗口 文本的基本单位是字符向量,这意味着大部分字符串处理函数也能用于字符串向量,这与数学运算的向量化方式相同 1. 创建和打印字符串 字符向量可用c函数创建,可以用单引号或双引号把字符串引用出来,只要引号之间匹配即可,不过使用双引号更为标准 c( "You should use double quotes most of the ti

Arkardia的博客 923

Python】r前缀的字符串是什么

r前缀的字符串是原始字符串,即转义字符失效。

weixin_46739825的博客 706

Python string编码

文章目录一、前言什么是编码?什么是字符集1.字库表2.编码字符集(通常简称 `字符集`)3.字符编码一个范例二、影响Python执行的编码方案1.Python解释器的默认编码2.Python源文件文件编码3.操作系统的语言设置4.Terminal使用的编码三、最后使用范例Pycharm编码设置 一、前言 本文将通过列举Python编码中的编码问题来进行阐述!!! 使用过Python的同学们一定被她......

非-浪的博客 7173

Python字符编码

之前一直以为unicode和utf8是对等的,现在才发现utf8算是unicode的中间状态。在学习网页爬虫时,理解网页数据传输的编码机制是一个基础,不然搞不懂报错

基博的博客 7793

python字符串和编码

注:本篇博客是学习廖雪峰老师网站的摘抄,是为了方便以后的学习。https://www.liaoxuefeng.com/wiki/1016959663602400/1017075323632896 如有侵权,请联系删除! 联系邮箱:1103540209@qq.com 文章目录1.字符编码2.Python字符串3.格式化format()4.小结5.参考 1.字符编码 我们已经讲过了,字符串也是一种数...

我是天才很好 907

python 获取字符编码值_9. 字符编码Python之文件操作

字符编码1 字符在内存与硬盘中的编码对应关系内存固定使用unicode,我们可以改变的是存入硬盘采用格式英文+汉字-》unicode-》gbk英文+日文-》unicode-》shift-jis万国字符》-unicode-》utf-82 文本文件存取乱码问题文本文件存取乱码问题存乱了:解决方法是,文本编辑器的编码格式应该设置成支持文件内字符串的格式取乱了:解决方法是,文件是以什么编码格式存如硬盘的,...

weixin_39850167的博客 865

Docker使用Alpine镜像[代码]

本文详细介绍了Alpine镜像的特点及其在Docker中的使用。Alpine镜像以其小巧(最小仅5MB)、安全、简单和适合容器使用的特点受到青睐。文章提供了Alpine镜像的下载方式,包括在线和离线下载,并指导如何更新镜像源至国内清华源以提高下载速度。此外,还详细说明了如何在Alpine镜像中安装和配置Nginx、PHP-FPM以及可道云(KodExplorer),包括解决启动过程中可能遇到的问题。最后,文章介绍了如何将配置好的容器提交为新的镜像并验证其运行效果。

基于深度学习的光纤水声信号识别.zip

基于深度学习的光纤水声信号识别.zip

上一篇: python的元组相关操作、函数及集合知识学习
下一篇: day9-字符串相关题型作业
张鱼小新
博客等级 码龄5年 10粉丝 41原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值