0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python 的数据类型(三):字符串

电子设计 来源:电子设计 作者:电子设计 2020-12-24 15:41 次阅读

各位童鞋很抱歉,由于这段时间比较忙,好久没更新了。今天终于有空来继续跟各位童鞋一起学习python

之前讲到,字符串的定义就是把一些字符序列用引号引起来。例如:

s = 'abc'

上面这行代码的执行过程:先创建一个字符串对象,并初始化里面字符串的值为'a', 'b', 'c'的序列,再把指针s指向这个对象。如下图所示:

字符串的序列操作

我们知道字符串内部是一个字符序列。作为序列,我们可以用下标来索引。例如:

c = s[0] # c = 'a'

c = s[1] # c = 'b'

还可以从字符序列的末尾开始索引,-1代表最后一个字符,-2代表倒数第二个字符,... 例如:

c = s[-1] # c = 'c'

c = s[-2] # c = 'b'

另外字符串还支持切片(slice)操作,取出给定两个下标之间的字符序列(包括开始下标的字符,但不包括结束下标的字符。用数学区间的[a:b)来描述是不是更清楚点呢)。例如:

c = s[0:2] # c = 'ab'

c = s[1:2] # c = 'b'

c = s[1:-1] # c = 'b'

这一点很像verilog的位宽操作,例如:reg s[7:0] = 8'h5a,那我们可以c = s[3:0]来取出3到0位的4'ha。只是verilog是闭区间的。

在切片时,当开始下标是0,冒号前的下标可以省略;结束下标指向最后一个元素,冒号后的下标也可省略。所以上面的切片可以简化成:

c = s[:2] # c = 'ab'

c = s[1:] # c = 'bc'

当开始下标和结束下标都省略时,s[:]表示整个字符序列'abc'。

注意理解 s[1:-1]和s[1:]的区别,前者不包括最后一个字符,而后者包括。

作为字符序列,还支持拼接和重复操作。例如:

s1 = 'abc'

s2 = s1 + 'def' # s2 = 'abcdef'

s3 = s1 * 3 # s3 = 'abcabcabc'

另外我们要注意字符序列的只读性。我们不可以对字符赋值,s[0] = 'd'是非法的。但我们可以迂回:

s = 'abc'

s = 'd' + s[1:]

但要注意,第二句并不是简单的修改s对象的元素值,而是用拼接产生了一个全新对象,并让s指向新的对象。

字符串类型的操作

除了序列操作外,字符串本身作为一种类,自带了很多操作函数(类的方法)。下表列出了一些常用的操作:

index, find

position = index(substr, begin=0, end=len(string))

position = find(substr, begin=0, end=len(string))

描述:index和find函数的作用相同,都是查找子字符串。可以指定开始和结束索引,在一个范围内查找。

返回值:子字符串的起始索引值。index和find的区别是,当没有找到子字符串时,index报错,而find返回-1。

例如:

s = 'abcdefdef'

p1 = s.find('de') # p1 = 3

p2 = s.index('de', 5) # p2 = 6

replace

str_new = replace(substr_old, substr_new[, max])

描述:替换函数,如其名,查找子字符串substr_old,替换成substr_new。第三个参数是可选的,指定替换的最大次数,默认是全部替换。

返回值:返回替换后的新字符串。

例如:

s = 'abcdefdef'

s1 = s.place('de', 'gh') # s1 = 'abchgfhgf'

s2 = s.place('de', 'gh',1) # s1 = 'abchgfedf'

split

list = split(str=' ', num)

描述:split函数用分隔字符str把字符串拆分成若干个子字符串。num指定拆分多少次,若没有指定次数,则为全部拆分。

返回值:拆分后的子字符串列表(下一次我们将要学习列表)。

例如:

s = 'I am learning python'

list1 = s.split(' ') # list1 = ['I', 'am', 'learning', 'python']

list1 = s.split(' ', 2) # list1 = ['I', 'am', 'learning python']

upper, lower

str_new = upper()

str_new = lower()

描述:把字符串转成大写或小写。

返回值:大小写转换后的新字符串。

例如:

s = 'abc'

s1 = s.uppper() # s1 = 'ABC'

s2 = s1.lower() # s2 = 'abc'

strip, lstrip, rstrip

str_new = strip(char=' ')

str_new = rstrip(char=' ')

str_new = lstrip(char=' ')

描述:strip函数用来去除头或尾部的指定字符,默认是去掉空格。

返回值:返回处理后的新字符串。

例如:

s = ' abc'

s1 = s.lstrip() # s1 = 'abc'

s2 = s1.rstrip('') # s2 = 'abc'

startswith, endswith

boolean = startswith(str, begin=0, end=len(string))

boolean = endswith(str, begin=0, end=len(string))

描述:检查字符串是否以str开头或结尾,可以在指定范围内检查。

返回值:如果检查到,返回True,否则返回False。

例如:

s = 'clk_a'

b1 = s.startswith('clk') # b1 = True

s = 'rst_n'

b2 = s.endswith('_n') # s2 = True

format

str_new = '{}{}...'.format(arg1, arg2, ...)

描述:format用来把其它数字、字符串、甚至对象等格式化成字符串。大括号{}用来指定名称、位置、数字的格式等。

返回值:格式化后的新字符串。

例如:

s = 'I am learning {lang}'.format(lang='python') # s = 'I am learning python'

s = '{0} {1} {0}'.format('face', 'to') # s = 'face to face'

s = '{} {} {}'.format('I', 'love', 'python') # s = 'I love python'

第一种,按名称替换。

第二种,按位置替换。

第三种,默认按位置替换,也是最常见的替换方式。

是不是有点像verilog的模块例化?可以按名称,也可以按位置。

format数字格式化

数字格式化成字符串的规则如下表:

例如:

s = "8'h{:0>2x}".format(15) # s = "8'h0f"

s = '{:.2%}'.format(3 / 9) # s = "33.33%"

可能有童鞋要问了“字符串内置这么多函数,一下也记不住啊?” 所以下面内容非常重要(敲黑板)。

1. 怎么看string还内置其它什么函数?

s = 'abc'

print(dir(s))

dir()是一个内置函数,能够查看类的所有属性和方法。结果如下:

2. 那怎么查看具体函数的使用方法呢?

python已经考虑到这个问题了,不需要百度、不需要查看源代码,只需要调用help()函数。例如:

print(help(s.find))

将打印出下面的内容:

有没有被python的贴心功能感动呢?

下一次我们将学习python的列表。

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 字符串
    +关注

    关注

    1

    文章

    578

    浏览量

    20506
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13618
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84628
收藏 人收藏

    评论

    相关推荐

    base64字符串转换为二进制文件

    一些编程知识。以下是将Base64字符串转换为二进制文件的一般步骤,以及一个简单的Python示例代码。 步骤: 获取Base64字符串 :首先,你需要有一个Base64编码的字符串
    的头像 发表于 11-10 10:55 928次阅读

    鸿蒙原生应用元服务开发-仓颉基础数据类型字符串类型

    字符串类型使用 String 表示,用于表达文本数据,由一 Unicode 字符组合而成。 字符串
    发表于 09-18 10:43

    labview字符串数组转化为数值数组

    在LabVIEW中,将字符串数组转换为数值数组是一项常见的任务,尤其是在处理数据采集、信号处理或用户输入时。 1. 理解LabVIEW的数据类型 在开始之前,了解LabVIEW中的数据类型
    的头像 发表于 09-04 17:47 2258次阅读

    labview字符串如何转换为16进制字符串

    在LabVIEW中,将字符串转换为16进制字符串是一个常见的需求,尤其是在处理数据通信和硬件接口时。LabVIEW提供了多种方法来实现这一转换,包括使用内置函数、编写VI(Virtual
    的头像 发表于 09-04 15:54 2307次阅读

    labview中如何实现字符串换行

    1. 字符串换行的基本概念 在LabVIEW中,字符串换行通常指的是在字符串中插入换行符,使得字符串在显示或输出时能够自动换行。这在创建用户界面或处理文本
    的头像 发表于 09-04 15:47 1618次阅读

    labview中常用的字符串函数有哪些?

    ) : 功能:该函数用于返回字符串所包含的字符个数。 应用场景:常用于需要计算字符串长度的场景,如文件命名、数据处理等。 连接字符串(Str
    的头像 发表于 09-04 15:43 670次阅读

    labview字符串的四种表示各有什么特点

    。在LabVIEW中,字符串是一种基本的数据类型,用于表示文本信息。字符串在LabVIEW中有多种表示方式,每种方式都有其特定的应用场景和特点。以下是对LabVIEW中四种字符串表示方
    的头像 发表于 09-04 15:40 539次阅读

    深入解析西门子博途文本块接口的结构与功能

    STRING 和 WSTRING 数据类型存储一个字符串中的多个字符。允许在字符串中使用任何 ASCII码类型
    发表于 04-11 11:23 1204次阅读
    深入解析西门子博途文本块接口的结构与功能

    鸿蒙TypeScript学习第10天:【String(字符串)】

    String 对象用于处理文本(字符串)。
    的头像 发表于 04-08 14:32 801次阅读
    鸿蒙TypeScript学习第10天:【String(<b class='flag-5'>字符串</b>)】

    C语言字符串编译函数介绍

    在C语言中,字符串实际上是使用null字符O'终止的一维字符数组。因此,一个以null结尾的字符串,包含了组成字符串
    的头像 发表于 03-07 16:18 502次阅读
    C语言<b class='flag-5'>字符串</b>编译函数介绍

    labview二进制字符串转数值

    字符串是一种常见的数据类型,它表示了以二进制形式存储的数据。当我们需要将这些二进制字符串转换为数值时,LabVIEW提供了一些常用的函数和方法,可以帮助我们完成这个任务。 首先,我们需
    的头像 发表于 01-05 16:20 2650次阅读

    labview扫描字符串怎么用

    介绍如何在 LabVIEW 中使用扫描字符串以及相关的技巧和注意事项。 字符串是 LabVIEW 中的一种基本数据类型,表示一系列字符的序列。扫描
    的头像 发表于 12-29 10:12 1979次阅读

    KUKA 机器人系统函数StrFind()-在字符串里查找

    搜索字符串变量 用功能 StrFind() 可以搜索字符串变量的字符串。 Result = StrFind( StartAt, StrVar[], StrFind[], CaseSens )
    的头像 发表于 12-27 10:36 675次阅读

    labview扫描字符串怎么用

    的函数: 文本扫描器(Text Scan)函数:这个函数可以从一个字符串中提取出特定的数据,例如数字或者其他文本。你可以指定要提取的数据的格式,如整数、浮点数等。文本扫描器函数还可以跳过不需要的
    的头像 发表于 12-26 16:58 1977次阅读

    labview中怎么对字符串中的进行实时处理

    LabVIEW是一种用于开发控制、测试和测量系统的可视化编程环境,它提供了许多处理字符串的功能。在LabVIEW中,可以使用不同的函数和工具来实时处理字符串。下面我将详细介绍一些常见的方法和技术
    的头像 发表于 12-26 14:12 1856次阅读