字符串String
字符串String是python中6中基本数据类型之一,所有用单引号 ' 或双引号 " 括起来的内容可以看出一个字符串。如"hello world",'hello world'
字符串相关操作
python中字符串是一个可以迭代的数据类型。所谓迭代就是可以通过循环,反复对数据进行操作。
在python中有关字符串的操作非常多,这里先列出一部分可能用到的操作,如果后续还有用到,再继续补充。
1.获取字符串中某个字符
由于字符串是可以迭代的数据类型,所以字符串中每一个字符都可以对它进行操作。我们可以通过下标(索引)来访问转字符串中的某个字符。
a = 'hello world'
print(a[0])
print(a[3])
image.png
注意:字符串中字符元素的下标(索引)是从0开始到字符串长度-1结束。
2.字符串的遍历
通过循环来依此去除字符串中的所有元素。
a = 'abcd123'
for item in a:
print(item)
image.png
3.将字符串拆分同时赋值给多个变量
a = 'abcd123'
a1,*a2,a3 =a
print(a1,a2,a2)
image.png
说明:*表示不定个数的元素,可以看到,字符串第一个元素a赋值给a1,最后一个字符3赋值给a3,中间的元素以列表的形式全部赋值给a2。*操作可以放在首尾和中间的任意位置。
注意:*操作可以用在所有可以迭代的对象中。如字符串,列表,元组等
4.获取字符串中某个范围的值
python中可以获取任意有序且可以迭代的对象的某个范围的值,并且可以按照一定的规则来获取这个范围的值。
a = 'abcd123'
a1 = a[1:5]
a2 = a[1:5:2]
a3 = a[-1]
a4 = a[::-1]
a5 = a[6:2:-2]
image.png
注意:a1获取的是字符串下标1-5的区间,这是一个半开半闭的区间[1:5),包括下标1,不包括5,a2获取的是字符串下标1-5的区间,并且按照下标以2为步进进行获取,步进可以理解为下标以等差为2的等差数列获取,所以[1:5:2]实际获取的下标为1,3。a3获取的为字符串倒数第一个元素,-1表示倒数第一个,-2表示倒数第二个,依此类推。a4是将字符串逆序排列,前面两个冒号表示整个字符串的区间,a5表示下标6-2之间以-2为步进获取,6-2表示从后往前,2-6表示从前往后获取。
5.字符串拼接
a = 'abc'
c = a+'123'
image.png
注意:python中字符串的拼接方式直接用+号将两个字符串进行连接。
6.字符串中的一些转义字符
当你在使用字符串时,如果想要表示这样的字符串'I told you don't do that!' ,你会发现直接这样写,程序会出错,那么怎么使它能正确运行?
python中有多种种方式可以实现这样的操作。
a="I told you don't do that!"
b='I told you don\'t do that!'
print('I told you don%st do that!'%("'"))
c='''
I told you don't do that
'''
第一种:双引号与单引号组合使用;第二种使用转义字符\来表示字符';第三种使用占位符。
python中其他占位符:
转移字符 | 功能 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
python中的其他占为符:
占位符 | 功能 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
7.判断某个字符是否在字符串中
a = 'abcd123'
b = 'abc'
c = 'cdv'
print(b in a,c in a,b not in a,c not in a)
image.png
注意:in操作和not in操作非常有用,可以直接用来判断一个元素是否在某个容器类型中,而不需要去遍历容器判断元素是否相等。
8.字符串的乘法操作
a = '*'
print(a*5)
image.png
注意:*操作的作用是将一个字符串重复多少次。
9.字符串格式化format方法
a='{} {}'.format('hello','world')
b='{1} {0} {0}'.format('o','h')
c='name ={name}, age ={age}'.format(name='RideoCos',age='22')
dict1 = {'name':'RideoCos','age':22}
list1 = ['RideoCos',22]
d='name={name}, age={age}'.format(**dict1)
e='name={0[0]}, age={0[1]}'.format(list1)
format是python2.6后增强的一种字符串格式化操作,通过str.format()来实现。
可以指定位置来进行字符串的格式化。可以指定位置或不指定,不指定则默认由参数从左至右进行格式化。
注意:可以通过字典或列表进行格式化,需要注意的是在使用字典进行格式化时,操作语句为str.format(**dict)。使用列表时,需要使用0[index]来获取列表元素。
10.字符串数字格式化操作
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}'.format(11) | 1011 | 二进制 |
11 | '{:d}'.format(11) | 11 | 十进制 |
11 | '{:o}'.format(11) | 13 | 八进制 |
11 | '{:x}'.format(11) | b | 十六进制 |
11 | '{:#x}'.format(11) | 0xb | 十六进制 |
11 | '{:#X}'.format(11) | 0XB | 进制 |
使用方法:
c ='{:b}'.format(11)
c='{:.2f}'.format(3.111)
c='{:.0f}'.format(3.111)
c='{:0>2d}'.format(5)
网友评论