字符串或串(String)是由数字、字母、下划线组成的一串字符。
python有三种字符串表示方式:
• 单引号:允许嵌入双引号
• 双引号:允许嵌入单引号
• 三重引用:三个单引号或者三个双引号
用三引号引起来的字符串可能会跨越多行,所有关联的空格都将包含在字符串文字中。
例如:
#单引号
s = 'hello'
#单引号中嵌入双引号
s = 'he say:"hello!" '
#双引号
s = "hello"
#双引号中嵌入单引号
s = "I'm a student!"
#三个单引号的三重引号,引号中可使用单、双引号
s = '''he say:"hello!" '''
#三个双引号的三重引号,引号中可使用单、双引号
s = """I'm a student!"""
msg = '''
生命诚可贵,
爱情价更高。
若为自由故,
二者皆可抛。
'''
print(msg)
Python的数据类型分为可变(mutable)与不可变(immutable)。不可变类型包含字符串(str),整数(int),元组(tuple);可变类型包含列表(list),字典(dict)。
由于字符串是序列,所以字符串可以进行序列的通用操作。比如:索引,切片,加,乘,检查成员。
因为字符串是序列,索引规则与序列索引规则相同。具体使用如下:
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
s = "hello world"
print(s[:]) # 开始结尾都默认
print(s[3:]) # 结尾都默认
print(s[:3]) # 开始默认
print(s[0:6:2]) # 添加步长
执行结果:
hello world
lo world
hel
hlo
s1 = "hello"
s2 = "tom"
print(s1+","+s2)
执行结果:
hello,tom
s = "tom"
print(s*3)
执行结果:
tomtomtom
s = "hello world"
print('f' in s)
print('f' not in s)
执行结果:
False
True
由于字符串是序列,所以字符串可以使用序列的内置函数。
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() 转换来输出列表。
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,因为它们的编码值转换成八进制以后有三位。
对于 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代表换行 |
注意:
>>> 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
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