Python学习笔记7_字符串(String)
字符串是 Python 中最常用的数据类型。可以使用引号(
’ 或
" )来创建字符串。
var1 = 'Hello World!'
var2="name"
1、访问字符串中的值
- Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
- Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量[下标]
变量[头下标:尾下标]
- 索引值以 0 为开始值,-1 为从末尾的开始位置。
1.1、字符串切片
切片就是从字符串里复制一段指定内容,生成一段新的字符串
切片语法: 变量名[?start:end :step]
包含start, 不包含end, start 不填写默认从头开始, end不填写默认到最后一个
step 指的是步长, 理解为间隔, 每隔 step-1 个取一个值
step 也可控制取向, 正数从左向右取值; 负数从右向左取值. 默认为1.
n = 'abcdefghijklmnopqrstuvwxyz'
print(n[2:5])
print(n[1:9:2])
print(n[::-1])
print(n[-5:-2])
print(n[-2:-5:-1])
2、字符串更新
1)可以截取字符串的一部分并与其他字段拼接:
>>> var1 = 'Hello World!'
>>> print ("已更新字符串 : ", var1[:6] + 'Runoob!')
已更新字符串 : Hello Runoob!
3、转义字符
在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符:
转义字符 | 描述 |
---|
\ (在行尾时) | 续行符 | \\ | 反斜杠符号 | \' | 单引号 | \" | 双引号 | \a | 响铃 | \b | 退格(Backspace) | \000 | 空 | \n | 换行 | \v | 纵向制表符 | \t | 横向制表符 | \r | 回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。 | \f | 换页 | \yyy | 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 | \xyy | 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行 |
4、字符串运算符
下表实例变量 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 |
5、原生字符串
在字符串前面添加r或R,在Python里表示原生字符串
f = '你好\n世界'
g = r'你好\n世界'
6、字符串格式化输出
在 Python 中,字符串格式化输出使用与 C 中 sprintf 函数一样的语法。
>>> print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
我叫 小明 今年 10 岁!
6.1、python字符串格式化符号:
符 号 | 描述 |
---|
%c | 格式化字符及其ASCII码 | %s | 格式化字符串 | %d | 格式化整数 | %u | 格式化无符号整型 | %o | 格式化无符号八进制数 | %x | 格式化无符号十六进制数 | %X | 格式化无符号十六进制数(大写) | %f | 格式化浮点数字,可指定小数点后的精度 | %e | 用科学计数法格式化浮点数 | %E | 作用同%e,用科学计数法格式化浮点数 | %g | %f和%e的简写 | %G | %f 和 %E 的简写 | %p | 用十六进制数格式化变量的地址 |
6.2、格式化操作符辅助指令:
符号 | 功能 |
---|
* | 定义宽度或者小数点精度 | - | 用做左对齐 | + | 在正数前面显示加号( + ) | | 在正数前面显示空格 | # | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) | 0 | 显示的数字前面填充’0’而不是默认的空格 | % | ‘%%‘输出一个单一的’%’ | (var) | 映射变量(字典参数) | m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
6.3、字符串的 format() 方法
print('大家好,我是{},今年{}岁,来自{}'.format('张三', 18, 'Handan'))
print('大家好,我是{2},今年{0}岁,来自{1}'.format(18, 'Handan', '张三'))
print('大家好,我是{name},今年{age}岁,来自{home}'.format(name='张三',home = '邯郸', age=18))
print('大家好,我是{1},今年{age}岁,来自{home},今天挣了{0}元'.format(88,'张三',home='Handan',age=18))
print('大家好,我是{},今年{age}岁,来自{home},今天挣了{}元'.format('张三',88,home='Handan',age=18))
6.4、三引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( )。
也可以使用换行符 [
]。
6.5、f-string
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去:
>>> name = 'Runoob'
>>> f'Hello {name}'
'Hello Runoob'
>>> f'{1+2}'
'3'
>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
- 在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
>>> x = 1
>>> print(f'{x+1}')
2
>>> x = 1
>>> print(f'{x+1=}')
x+1=2
7、Python中字符串常用函数
1)capitalize():将字符串的第一个字符转换为大写
2)count(str, beg= 0,end=len(string)):返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
3)endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 suffix 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
4)expandtabs(tabsize=8):把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
5)find(str, beg=0, end=len(string)):检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
6)index(str, beg=0, end=len(string)):跟find()方法一样,只不过如果str不在字符串中会报一个异常。
7)isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
8)isalpha():如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
9)isdigit():如果字符串只包含数字则返回 True 否则返回 False…
10)islower():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
11)isnumeric():如果字符串中只包含数字字符,则返回 True,否则返回 False
12)isspace():如果字符串中只包含空白,则返回 True,否则返回 False.
12)isupper():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
13)join(seq):以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
14)len(string):返回字符串长度
15)lower():转换字符串中所有大写字符为小写.
16)max(str):返回字符串 str 中最大的字母。
17)min(str):返回字符串 str 中最小的字母。
18)replace(old, new [, max]):将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
19)rfind(str, beg=0,end=len(string)):类似于 find()函数,不过是从右边开始查找.
20)rindex( str, beg=0, end=len(string)):类似于 index(),不过是从右边开始.
21)split(str=“”, num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
22)startswith(substr, beg=0,end=len(string)):检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
23)swapcase():将字符串中大写转换为小写,小写转换为大写
24)upper():转换字符串中的小写字母为大写
25)isdecimal():检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
|