长字符串
这个在文章上篇中提到过,即三个引号括起来的长字符串,它可以赋给变量,也可以不做操作而直接被解释器忽视了
>>> a='''"Let's go,baby",said tom.
"OK,Let'go,honey",said lucy.
'''
>>> print(a)
"Let's go,baby",said tom.
"OK,Let'go,honey",said lucy.
此外python允许使用转义字符(\)对换行符进行转义,转移之后换行符不会中断字符串,这个用处不大,一般是在字符串太长的时候用。
>>> s='hello\
world'
>>> print(s)
helloworld
注意: python对缩进、换行要求很严格,不要随便换行
原始字符串
经过前面的介绍,我们知道了字符串中出现 \ 的话需要转义,如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’‘表示’'内部的字符串默认不转义,可以自己试试:
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
字节串
字节串(这个名字是别人想出来的,与字符串对应,实为bytes类型),是python3新增的类型,注意区别
字符串(str)由多个字符组成,以字符为单位进行操作
字节串(bytes)由多个字节组成,以字节为单位进行操作
其余的地方二者都一样,支持的方法也基本一样,bytes也是不可变序列
>>> b1 = bytes()
>>> b2 = b''
>>> b3 = b'hello'
>>> print(b3)
b'hello'
>>> print(b3[0])
104
>>> print(b3[2:4])
b'll'
>>> b4 = bytes('我爱Python编程',encoding='utf-8')
>>> print(b4)
b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'
>>> b5 = "学习Python很有趣".encode('utf-8')
>>> print(b5)
b'\xe5\xad\xa6\xe4\xb9\xa0Python\xe5\xbe\x88\xe6\x9c\x89\xe8\xb6\xa3'
>>> st = b5.decode('utf-8')
>>> print(st)
学习Python很有趣
输出结果自己去做做看吧
提示: 计算机中两个基本概念:位(bit)和字节(byte),1位代表8字节。在字节串中每个数据单元都是字节,也就是八位,相当于两个四位二进制数,可以由两个十六进制数来表示,结合上边代码的输出,更好理解
**#**同时也可以通过调用bytes的 decode()函数 将bytes对象解码成字符串
>>> b1=bytes('我爱编程',encoding='utf-8')
>>> print(type(b1))
<class 'bytes'>
>>> st=b1.decode('utf-8')
>>> print(st)
我爱编程
深入使用字符串
python支持的转义字符
转义字符 | 说明 |
---|---|
\b | 退格符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\" | 双引号 |
\’ | 单引号 |
\\ | 反斜线 |
至于怎么使用还需多熟悉
字符串格式化
>>> s1=111
>>>> print("%s is jsoreguh"%s1)
111 is jsoreguh
>>> s2=34
>>> print("%s is %s jsoreguh"%(s1,s2))
111 is 34 jsoreguh
看代码,这点其实和C语言差不多,python提供了 “%” 对各种类型数据进行格式化输出,%s 是一个占位符输出结果中将会被后面的变量或者表达式的值代替,如果格式化字符串中包含多个 “%s” 则后面也要提供多个变量并且用括号括起来。实际上呢,python还提供了多个转换说明符
转换说明符 | 说明 |
---|---|
d,i | 转换为带符号的十进制形式的整数 |
o | 转换为带符号的八进制形式的整数 |
x | 转换为带符号的十六进制形式的整数 |
X | 转换为带符号的十六进制形式的整数 |
e | 转换为科学记数法表示的浮点数(e小写) |
E | 转换为科学记数法表示的浮点数(E小写) |
f,F | 转换为十进制形式的浮点数 |
g | 智能选择f或e格式 |
G | 智能选择F或E格式 |
C | 转换为单字符(只接受单字符字符串或整数) |
r | 使用repr()将变量或者表达式转换为字符串 |
s | 使用str()将变量或者表达式转换为字符串 |
repr()和str()在上一篇博客有讲到过
还是和C语言很像没我们还可以转换说明符 % 后接数字指定转换后的最小宽度
>>> s1=123
>>> print("s1=%6i"%s1)
s1= 123
>>> print("s1=%i"%s1)
s1=123
注意是指定最小宽度6,所以电脑自动补了空格,默认右对齐,不够宽度空格补左边
附上鄙人的学习感想
关于这部分内容其实还有很多,比如序列相关方法、大小写相关方法、查找替换相关方法 再加上数据类型后续章节还有运算符 等等,我本人不会再介绍这部分内容,大家可以自己查资料,在上一篇博客中的百度云盘文档中有一份老师推荐的书(pdf版),强力推荐
如果要系统的学习或者说解决一些难题我的博客实际上都不太适合阅读,因为太细了,就像我在上一篇python博客中说的,应该是尽快上手需要什么就学什么 ,以后我还会继续更新博客,只不过换一种方式,不会再是这种书本式教学的博客,而注重实际应用,分享我自己的学习成果以及遇到并解决的问题
下次再见,各位!