【Python基础知识】07。Python基本数据类型字符串(1),07Python,之

发表时间:2020-10-29

1 字符串

1.1 字符串的定义

字符串或串(String)是由数字、字母、下划线组成的一串字符。

1.2 字符串的表示方式

python有三种字符串表示方式:
• 单引号:允许嵌入双引号
• 双引号:允许嵌入单引号
• 三重引用:三个单引号或者三个双引号
用三引号引起来的字符串可能会跨越多行,所有关联的空格都将包含在字符串文字中。
例如:

#单引号
s = 'hello'
#单引号中嵌入双引号
s = 'he say:"hello!" '
#双引号
s = "hello"
#双引号中嵌入单引号
s = "I'm a student!"
#三个单引号的三重引号,引号中可使用单、双引号
s = '''he say:"hello!" '''
#三个双引号的三重引号,引号中可使用单、双引号
s = """I'm a student!"""

1.3 注意事项

  • 1、加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数。
  • 2、反斜杠()可以作为续行符,表示下一行是上一行的延续。
  • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
  • 4、Python中的字符串不能改变,为不可变对象。
  • 5、可使用一对单引号或双引号来包裹,但单引号和双引号不能混合使用。
  • 6、单双引号没有任何区别,只有下面这种情况你需要考虑单双的配合。
    例如:
    info = " He’s 21 years old " # 引号嵌套需要区分
  • 7、多行字符串必须用多引号。
msg = ''' 
   生命诚可贵,
   爱情价更高。
   若为自由故,
   二者皆可抛。
    '''
print(msg)

Python的数据类型分为可变(mutable)与不可变(immutable)。不可变类型包含字符串(str),整数(int),元组(tuple);可变类型包含列表(list),字典(dict)。

2 字符串的操作

2.1 序列的通用操作

由于字符串是序列,所以字符串可以进行序列的通用操作。比如:索引,切片,加,乘,检查成员。

2.1.1 索引

因为字符串是序列,索引规则与序列索引规则相同。具体使用如下:

s = "hello world"
print(s[0],s[5],s[6])          # s[5]  索引结果为空格
print(s[-1],s[-6],s[-7])       # s[-6] 索引结果为空格

执行结果为:

h   w
d   o

2.1.2 切片

s = "hello world"
print(s[:])   # 开始结尾都默认
print(s[3:])  # 结尾都默认
print(s[:3])  # 开始默认
print(s[0:6:2])  # 添加步长

执行结果:

hello world
lo world
hel
hlo

2.1.3 加

s1 = "hello"
s2 = "tom"
print(s1+","+s2)

执行结果:

hello,tom

2.1.4 乘

s = "tom"
print(s*3)

执行结果:

tomtomtom

2.1.5 检查成员

s = "hello world"
print('f' in s)
print('f' not in s)

执行结果:

False
True

2.2 序列的内置函数

由于字符串是序列,所以字符串可以使用序列的内置函数。

s1 = 'hello'
s2 = 'world'
print(len(s1))
print(max(s1))
print(min(s1))
print(list(s1))
print(tuple(s1))
print(sorted(s1, reverse=True))
print(sorted(s1, reverse=False))
print(reversed(s1))
print(list(reversed(s1)))
print(enumerate(s1))
print(list(enumerate(s1)))
print(zip(s1, s2))
print(list(zip(s1, s2)))

执行结果:

5
o
e
['h', 'e', 'l', 'l', 'o']
('h', 'e', 'l', 'l', 'o')
['o', 'l', 'l', 'h', 'e']
['e', 'h', 'l', 'l', 'o']
<reversed object at 0x000001EF3D94F828>
['o', 'l', 'l', 'e', 'h']
<enumerate object at 0x000001EF3D925EA0>
[(0, 'h'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')]
<zip object at 0x000001EF3D9559C8>
[('h', 'w'), ('e', 'o'), ('l', 'r'), ('l', 'l'), ('o', 'd')]

说明:
• sum不支持字符串类型。因为字符串不是数据类型,不是整数类型,不是浮点数类型。不能实现求和操作。
• sorted()函数中, reverse = True 降序 , reverse = False 升序(默认)。
• reversed(s1)、enumerate(s1)、zip(s1,s2)返回的都是一个迭代器对象。
• enumerate()用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
• zip(iter1 [,iter2 […]]) 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。

3 转义字符

3.1 定义

ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。关于ASCII编码的详细知识详见: https://blog.csdn.net/qq_37572548/article/details/108037490
转义字符以\0或者\x开头,以\0开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值,Python 中的转义字符只能使用八进制或者十六进制。

\0dd
\xhh

其中:dd 表示八进制数字,hh 表示十六进制数字。
ASCII 编码共收录了 128 个字符,\0和\x后面最多只能跟两位数字,所以八进制形式\0并不能表示所有的 ASCII 字符,只有十六进制形式\x才能表示所有 ASCII 字符。
我们一直在说 ASCII 编码,没有提及 Unicode、GBK、Big5 等其它编码(字符集),是因为 Python 转义字符只对 ASCII 编码(128 个字符)有效,超出范围的行为是不确定的。
例子:字符 1、2、3、x、y、z 对应的 ASCII 码的八进制形式分别是 61、62、63、170、171、172,十六进制形式分别是 31、32、33、78、79、7A。下面的例子演示了转义字符的用法:

str1 = "Oct: \061\062\063"
str2 = "Hex: \x31\x32\x33\x78\x79\x7A"
print(str1)
print(str2)

运行结果:

Oct: 123
Hex: 123xyz

注意,使用八进制形式的转义字符没法表示 xyz,因为它们的编码值转换成八进制以后有三位。

3.2 必要性

对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下。

转义字符 描述 ASCII值
\(在行尾时) 续行符
\\ 反斜杠符号 092
\’ 单引号 039
\” 双引号 034
\a 响铃 007
\b 退格 008
\n 换行 010
\v 纵向制表符 011
\t 横向制表符 009
\r 回车 013
\f 换页 012
\0yy 八进制数,yy代表的字符,例如:\012代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行

注意:

  • 转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。
  • 反斜杠""可以用来转义,使用r或者R可以让反斜杠不发生转义。
  • 转义字符在书写形式上由多个字符组成,但 Python 将它们看作是一个整体,表示一个字符。
  • 单引号、双引号、反斜杠是特殊的字符,不能直接表示:
    单引号是字符类型的开头和结尾,要使用’表示,也即’’’;
    双引号是字符串的开头和结尾,要使用"表示,也即"abc"123";
    反斜杠是转义字符的开头,要使用\表示,也即’\’,或者"abc\123"。
  • \0yy,第一位是数字0而不是字母O。
  • 在别的地方有列出\e和\000,其实再官方文档并没有列出这两个转义字符。但是\e在Python中没有任何影响。而\000可以当作八进制表示ASCII码来看,对应于ASCII码的第一个:空字符,在python中输入有效。
    例证1:
>>> print ('\e123')                
\e123                             #\e无效
>>> print ('eee\e123' )
eee\e123                          #\e无效
>>> print ('eee\e\t123')
eee\e   123                       #\e无效
>>> print ('eee\e\n123')
eee\e                             #\e无效
123

例证2:

>>> print('hello\000world')       #\000代表空字符
hello world

3.3 综合示例

Python 转义字符综合示例:

#使用\t排版
str1 = '网站\t\t域名\t\t\t\t年龄'
str2 = '百度\t\twww.baidu.com\t\t20'
str3 = 'CSDN\t\twww.csdn.net\t\t21'
print(str1)
print(str2)
print(str3)
print("--------------------")
# \n在输出时换行,\在书写字符串时换行
info = "【Python基础】01.Python简介:https://blog.csdn.net/qq_37572548/article/details/105332975\n\
【Python基础】02.Python环境搭建以及PyCharm的安装和配置:https://blog.csdn.net/qq_37572548/article/details/105358066\n\
【Python基础】03.基本概念(表达式、语句等)以及标识符和关键字:https://blog.csdn.net/qq_37572548/article/details/105429279/\n\
【Python基础】04.运算符(超详细):https://blog.csdn.net/qq_37572548/article/details/105493166\n\
【Python基础】05.Python基本数据类型之数字:https://blog.csdn.net/qq_37572548/article/details/105690913\n\
【Python基础】06.序列:https://blog.csdn.net/qq_37572548/article/details/109255497"
print(info)

运行结果:

网站      域名              年龄
百度      www.baidu.com     20
CSDN      www.csdn.net      21
--------------------
【Python基础】01.Python简介:https://blog.csdn.net/qq_37572548/article/details/105332975
【Python基础】02.Python环境搭建以及PyCharm的安装和配置:https://blog.csdn.net/qq_37572548/article/details/105358066
【Python基础】03.基本概念(表达式、语句等)以及标识符和关键字:https://blog.csdn.net/qq_37572548/article/details/105429279/
【Python基础】04.运算符(超详细):https://blog.csdn.net/qq_37572548/article/details/105493166
【Python基础】05.Python基本数据类型之数字:https://blog.csdn.net/qq_37572548/article/details/105690913
【Python基础】06.序列:https://blog.csdn.net/qq_37572548/article/details/109255497



本文来自许多优秀博文的总结,如果感觉本文对您有用,欢迎点赞收藏加关注,方便日后翻阅。如若本文存在错误,同样也欢迎各位路过的大佬批评指正!

推荐阅读:
【Python基础】06.序列
【Python基础】关于字符编码(ASCII,GB2312,Unicode,UTF-8,UTF-16,UTF-32),有这一篇就够了!
【Python基础】05.Python基本数据类型之数字
【Python基础】04.运算符(超详细)
【Python基础】03.基本概念(表达式、语句等)以及标识符和关键字
【Python基础】02.Python环境搭建以及PyCharm的安装和配置
【Python基础】01.Python简介
计算机与编程基础知识

参考链接:
[1]:http://c.biancheng.net/view/2176.html


未完待续…

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free