字符串不可修改
- 访问字符串中的值
可以使用方括号来截取字符串;
也可以使用for循环(enumerate可以截取序号)
2. 字符串更新
对已经存在的字符串修改,并赋值给另外一个变量
3. 转义字符
4. 字符串运算符
变量a为“Hello”,b为“python”
操作符 | 描述 | 实例 | 说明 |
+ | 字符串链接 | a+b输出结果为: Hellopython | |
* | 重复输出字符串 | a*2结果为HelloHello | |
[] | 索引获取字符串中字符 | ||
[:] | 截取字符串一部分,切片 | [x1:x2],如果x2是个数值,则x1是从0开始计算,取值不取x2上的; 全部取值可以用[:];到最后一个(但不取最后一个)可以用[:-1] | |
in | 成员运算符 | H in a 结果为True | |
not in | |||
% | 格式化输出字符串 |
5. 字符串格式化
1 print("My name is %s,and age is %s!"%('NBA',32))
另外一个种格式化输出方式:format()函数:
字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;
使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等;
还可以添加特定的字母, 如:
'b' - 二进制. 将数字以2为基数进行输出.
'c' - 字符. 在打印之前将整数转换成对应的Unicode字符串.
'd' - 十进制整数. 将数字以10为基数进行输出.
'o' - 八进制. 将数字以8为基数进行输出.
'x' - 十六进制. 将数字以16为基数进行输出, 9以上的位数用小写字母.
'e' - 幂符号. 用科学计数法打印数字, 用'e'表示幂.
'g' - 一般格式. 将数值以fixed-point格式输出. 当数值特别大的时候, 用幂形式打印.
'n' - 数字. 当值为整数时和'd'相同, 值为浮点数时和'g'相同. 不同的是它会根据区域设置插入数字分隔符.
'%' - 百分数. 将数值乘以100然后以fixed-point('f')格式打印, 值后面会有一个百分号.
1 age = 25 2 name = 'Caroline' 3 print('{0} is {1} years old. '.format(name, age)) #输出参数 4 print('{0} is a girl. '.format(name)) 5 print('{0:.3} is a decimal. '.format(1/3)) #小数点后三位 6 print('{0:_^11} is a 11 length. '.format(name)) #使用_补齐空位 7 print('{first} is as {second}. '.format(first=name, second='Wendy')) #别名替换 8 print('My name is {0.name}'.format(open('out.txt', 'w'))) #调用方法 9 print('My name is {0:8}.'.format('Fred')) #指定宽度
其输出结果为:
Caroline is 25 years old. Caroline is a girl. 0.333 is a decimal. _Caroline__ is a 11 length. Caroline is as Wendy. My name is out.txt My name is Fred .
6. 字符串常用内建函数
序号 | 格式 | 描述 | 实例 |
1 | str.capitalize() | 返回一个首字母大写的字符串。 | str = "this " print(str.capitalize()) 结果: This |
2 | str.center(width[, fillchar]) | 一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。 | |
3 | str.count(sub, start= 0,end=len(string))
| 返回子字符串在字符串中出现的次数 | |
4 | str.endswith(suffix[, start[, end]])
| 如果字符串含有指定的后缀返回True,否则返回False | 1 Str='Runoob example....wow!!!'2 suffix='!!'3 print (Str.endswith(suffix))4 print (Str.endswith(suffix,20))5 suffix='run'6 print (Str.endswith(suffix))7 print (Str.endswith(suffix, 0, 19)) 结果: TrueTrueFalseFalse
|
5 | str.find(str, beg=0, end=len(string))
| 如果包含子字符串返回开始的索引值,否则返回-1 | str1 = "Runoob example....wow!!!"str2 = "exam"; print (str1.find(str2))print (str1.find(str2, 5))print (str1.find(str2, 10)) 结果: 77-1
|
6 | str.index(str, beg=0, end=len(string))
| 如果包含子字符串返回开始的索引值,否则抛出异常 跟find()方法一样,只不过如果str不在字符串中会报一个异常. | str1 = "Runoob example....wow!!!"str2 = "exam";print (str1.index(str2))print (str1.index(str2, 5))print (str1.index(str2, 10)) 结果: 77Traceback (most recent call last): File "test.py", line 8, in
|
7 | str.join(sequence) sequence -- 要连接的元素序列 | 返回通过指定字符连接序列中元素后生成的新字符串 | s1 = "-"s2 = ""seq = ("r", "u", "n", "o", "o", "b") # 字符串序列print (s1.join( seq ))print (s2.join( seq )) 结果: r-u-n-o-o-brunoob
|
8 | len( str ) | 返回对象长度 | |
9 | str.ljust(width[, fillchar])
| 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格 | str = "Runoob example....wow!!!"print (str.ljust(50, '*')) 结果: Runoob example....wow!!!**************************
|
10 | str.lower() | Python lower() 方法转换字符串中所有大写字符为小写。 | str = "Runoob EXAMPLE....WOW!!!"print( str.lower() ) 结果: runoob example....wow!!!
|
11 | str.split(str="", num=string.count(str))
| split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 | str = "this is string example....wow!!!"print (str.split( ))print (str.split('i',1))print (str.split('w')) 结果: ['this', 'is', 'string', 'example....wow!!!']['th', 's is string example....wow!!!']['this is string example....', 'o', '!!!']
|
12 | str.strip([chars]) chars -- 移除字符串头尾指定的字符 | 用于移除字符串头尾指定的字符(默认为空格) | str = "*****this is string example....wow!!!*****"print (str.strip( '*' )) 结果: this is string example....wow!!!
|
13 | str.upper() | 返回小写字母转为大写字母的字符串。 | 同lower() |