三:python转义符
转义字符 | 描述 |
(在行尾时) | 续行符 |
\ | 反斜杠符号 |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
四:python字符串运算符
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
操作符 | 描述 | 实例 |
+ | 字符串连接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
[ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。 | a[1:4] 输出结果 ell |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | 'H' in a 输出结果 True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | 'M' not in a 输出结果 True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。就是原样输出 | print( r'\n' )print( R'\n' ) |
例:
a = "Hello" b = "Python" print("a + b 输出结果:", a + b) print("a * 2 输出结果:", a * 2) print("a[1] 输出结果:", a[1]) print("a[1:4] 输出结果:", a[1:4]) if ("H" in a): print("H 在变量 a 中") else: print("H 不在变量 a 中") if ("M" not in a): print("M 不在变量 a 中") else: print("M 在变量 a 中") # *原样输出 *print(r'\n') print(R'\n')
五:Python字符串格式化
Python的字符串还是很有意思的。
之前在使用PHP的时候,拼接字符串是一件很简单的事。
例如下边这样:
php
复制代码
<?php $str = "我是一个字符串,我有" . 10 . "个字符"; echo $str
但是python中的字符串拼接,相对要麻烦一点,不同数据类型的变量是不可以直接像PHP中那样直接拼接的。
需要将非字符串类型的变量转换成字符串,再进行拼接。
string_ge = "我是一个字符串,我有" + str(10) + "个字符"
print(string_ge)
这样写是没有问题的。但是python为我们提供了一些字符串格式化的符号:
****符 ****号 | 描述 |
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
在正数前面显示空格 | |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
例:
string_geshi = "我是一个字符串,我有 %d 个字符" % (10)
print(string_geshi)
输出:
我是一个字符串,我有 10 个字符
六:使用三引号实现多行字符串
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下
string_three = """ {(我是一个多行字符串 \n 很多行 \n 很多行 \n 很多行)} …… """ print(string_three)
输出:
{(我是一个多行字符串 很多行 很多行 很多行)} ……
七:字符串常用操作
1:查找字符串
查找字符串我们常用的四个函数有
Index:从左向右查找字符串第一次出现的位置,未找到报异常
Rindex:从右向左查找字符串第一次出现的位置,未找到报异常
Find:从左向右查找字符串第一次出现的位置。未找到返回-1
Rfind:从右向左查找字符串第一次出现的位置,未找到返回-1
python
复制代码
str = "hello hello" print(str.index('lo')) print(str.rindex('lo')) print(str.find('lo')) print(str.rfind('lo')) # print(str.index('xx')) # print(str.rindex('xx')) print(str.find('xx')) print(str.rfind('lxo'))
输出:
diff
复制代码
3 9 3 9 -1 -1
中间注释那两行print代码报异常,开发中建议使用find与rfind进行查找
2:字符串大小写操作
关于字符串大小写转换的操作有以下函数:
Upper:把字符串中所有字符转换为大写
Lower:把字符串中所有字符转换成小写
Swapcase:将字符串中所有小写字符转换成大写,所有大写字符转换成小写
Capitalize:将字符串的第一个字符转换为大写
Title:返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写
python
复制代码
str = "hello Hello" print(str.upper()); print(str.lower()); print(str.swapcase()); print(str.capitalize()); print(str.title());
输出:
复制代码
HELLO HELLO hello hello HELLO hELLO Hello hello Hello Hello
3:字符串内容对其的操作方法
内容对其我们使用到的函数有:
Center:返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。设置长度小于字符长度,返回原字符串
Ljust:返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。设置长度小于字符长度,返回原字符串
Rjust:返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串。设置长度小于字符长度,返回原字符串
Zfill:返回长度为 width 的字符串,原字符串右对齐,前面填充0
python
复制代码
str = "hello World" print(str.center(20, '+')) print(str.ljust(20, '+')) print(str.rjust(20, '+')) print(str.zfill(20))
输出:
diff
复制代码
++++hello World+++++ hello World+++++++++ +++++++++hello World 000000000hello World
4:字符串的拆分
字符串拆分我们用到的函数:
split(str="", num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串,返回值是一个列表。
rsplit(str="", num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串,返回值是一个列表。
python
复制代码
str = "hello World" print(str.split(' ')) print(str.rsplit('Wo'))
输出:
css
复制代码
['hello', 'World'] ['hello ', 'rld']
5:字符串合并
字符串合并我们使用参数:
join(seq):以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
使用join的时候需要注意一下语法:
bash
复制代码
lists = ['hello', 'World'] print(" ".join(lists))
输出:
复制代码
hello World
6:字符串替换操作
字符串替换我们需要用到 replace
python
复制代码
str = "hello World" print(str.replace('he','123456'))
输出:
123456llo World
7:字符串编码与解码
字符编码与解码我们用到的函数:
encode(encoding='UTF-8',errors='strict'):以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
ini
复制代码
str = '侯门一入深似海,从此萧郎是路人'; # 编码 gbk = str.encode('GBK') utf = str.encode('UTF-8') print(gbk) print(utf) # 解码 degbk = gbk.decode('GBK') deutf = utf.decode('UTF-8') print(degbk) print(deutf)
输出:
bash
复制代码
b'\xba\xee\xc3\xc5\xd2\xbb\xc8\xeb\xc9\xee\xcb\xc6\xba\xa3\xa3\xac\xb4\xd3\xb4\xcb\xcf\xf4\xc0\xc9\xca\xc7\xc2\xb7\xc8\xcb' b'\xe4\xbe\xaf\xe9\x97\xa8\xe4\xb8\x80\xe5\x85\xa5\xe6\xb7\xb1\xe4\xbc\xbc\xe6\xb5\xb7\xef\xbc\x8c\xe4\xbb\x8e\xe6\xad\xa4\xe8\x90\xa7\xe9\x83\x8e\xe6\x98\xaf\xe8\xb7\xaf\xe4\xba\xba'
侯门一入深似海,从此萧郎是路人
侯门一入深似海,从此萧郎是路人
有好的建议,请在下方输入你的评论。