马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
通过多个角度的界说相识“字符串”,加深理解。
界说一:所谓字符串,就是由零个或多个字符构成的有限序列,在Python程序中,如果我们把单个或多个字符用单引号或者双引号困绕起来,就可以表现一个字符串。
界说一:所谓字符串,就是由零个或多个字符构成的有限序列,在Python程序中,如果我们把单个或多个字符用单引号或者双引号困绕起来,就可以表现一个字符串。
字符串和常用数据布局
使用字符串
第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约5000次浮点运算。随着时间的推移,固然数值运算仍然是计算机一样平常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据大概都是以文本的方式存在的,如果我们希望通过Python程序操纵这些文本信息,就必须要先相识字符串范例以及与它干系的知识。
所谓字符串,就是由零个或多个字符构成的有限序列,一般记为 s = a 1 a 2 … a n ( 0 ≤ n ≤ ∞ ) {\displaystyle s=a_{1}a_{2}\dots a_{n}(0\leq n \leq \infty)} s=a1a2…an(0≤n≤∞)。在Python程序中,如果我们把单个或多个字符用单引号或者双引号困绕起来,就可以表现一个字符串。
- s1 = 'hello, world!'
- s2 = "hello, world!"
- # 以三个双引号或单引号开头的字符串可以折行
- s3 = """
- hello,
- world!
- """
- print(s1, s2, s3, end='')
复制代码 可以在字符串中使用\(反斜杠)来表现转义,也就是说\后面的字符不再是它原来的意义,比方:\n不是代表反斜杠和字符n,而是表现换行;而\t也不是代表反斜杠和字符t,而是表现制表符。所以如果想在字符串中表现'要写成\',同理想表现\要写成\\。可以运行下面的代码看看会输出什么。
- s1 = '\'hello, world!\''
- s2 = '\n\\hello, world!\\\n'
- print(s1, s2, end='')
复制代码 在\后面还可以跟一个八进制或者十六进制数来表现字符,比方\141和\x61都代表小写字母a,前者是八进制的表现法,后者是十六进制的表现法。也可以在\后面跟Unicode字符编码来表现字符,比方\u9a86\u660a代表的是中文“骆昊”。运行下面的代码,看看输出了什么。
- s1 = '\141\142\143\x61\x62\x63'
- s2 = '\u9a86\u660a'
- print(s1, s2)
复制代码 如果不希望字符串中的\表现转义,我们可以通过在字符串的最前面加上字母r来加以阐明,再看看下面的代码又会输出什么。
- s1 = r'\'hello, world!\''
- s2 = r'\n\\hello, world!\\\n'
- print(s1, s2, end='')
复制代码 Python为字符串范例提供了非常丰富的运算符,我们可以使用+运算符来实现字符串的拼接,可以使用*运算符来重复一个字符串的内容,可以使用in和not in来判定一个字符串是否包罗另外一个字符串(成员运算),我们也可以用[]和[:]运算符从字符串取出某个字符或某些字符(切片运算),代码如下所示。
- s1 = 'hello ' * 3
- print(s1) # hello hello hello
- s2 = 'world'
- s1 += s2
- print(s1) # hello hello hello world
- print('ll' in s1) # True
- print('good' in s1) # False
- str2 = 'abc123456'
- # 从字符串中取出指定位置的字符(下标运算)
- print(str2[2]) # c
- # 字符串切片(从指定的开始索引到指定的结束索引)
- print(str2[2:5]) # c12
- print(str2[2:]) # c123456
- print(str2[2::2]) # c246
- print(str2[::2]) # ac246
- print(str2[::-1]) # 654321cba
- print(str2[-3:-1]) # 45
复制代码 在Python中,我们还可以通过一系列的方法来完成对字符串的处理,代码如下所示。
- str1 = 'hello, world!'
- # 通过内置函数len计算字符串的长度
- print(len(str1)) # 13
- # 获得字符串首字母大写的拷贝
- print(str1.capitalize()) # Hello, world!
- # 获得字符串每个单词首字母大写的拷贝
- print(str1.title()) # Hello, World!
- # 获得字符串变大写后的拷贝
- print(str1.upper()) # HELLO, WORLD!
- # 从字符串中查找子串所在位置
- print(str1.find('or')) # 8
- print(str1.find('shit')) # -1
- # 与find类似但找不到子串时会引发异常
- # print(str1.index('or'))
- # print(str1.index('shit'))
- # 检查字符串是否以指定的字符串开头
- print(str1.startswith('He')) # False
- print(str1.startswith('hel')) # True
- # 检查字符串是否以指定的字符串结尾
- print(str1.endswith('!')) # True
- # 将字符串以指定的宽度居中并在两侧填充指定的字符
- print(str1.center(50, '*'))
- # 将字符串以指定的宽度靠右放置左侧填充指定的字符
- print(str1.rjust(50, ' '))
- str2 = 'abc123456'
- # 检查字符串是否由数字构成
- print(str2.isdigit()) # False
- # 检查字符串是否以字母构成
- print(str2.isalpha()) # False
- # 检查字符串是否以数字和字母构成
- print(str2.isalnum()) # True
- str3 = ' jackfrued@126.com '
- print(str3)
- # 获得字符串修剪左右两侧空格之后的拷贝
- print(str3.strip())
复制代码 我们之前讲过,可以用下面的方式来格式化输出字符串。
- a, b = 5, 10
- print('%d * %d = %d' % (a, b, a * b))
复制代码 当然,我们也可以用字符串提供的方法来完成字符串的格式,代码如下所示。
- a, b = 5, 10
- print('{0} * {1} = {2}'.format(a, b, a * b))
复制代码 Python 3.6以后,格式化字符串还有更为简便的书写方式,就是在字符串前加上字母f,我们可以使用下面的语法糖来简化上面的代码。
- a, b = 5, 10
- print(f'{a} * {b} = {a * b}')
复制代码 除了字符串,Python还内置了多种范例的数据布局,如果要在程序中保存和操纵数据,绝大多数时候可以使用现有的数据布局来实现,最常用的包罗列表、元组、聚集和字典。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |