1.什么是字符串
(1)字符串是python提供的容器型数字类型(序列)。
(2)特点:不可变,有序
不可变--->不支持增删改;
有序--->支持下标操作。
(3)python中个字符串使用单引号或者双引号引起来的字符集。
引号里面的每个基本单元叫字符。
2.字符:python中只有字符概念,没有字符类型。
(1)普通字符:普通符合、数字、字母、中文等
(2)转义字符:在特定的符合前加“\”来表示特殊功能或者特殊意义的字符。
\n --->换行(相当于回车)
' --->单引号字符(不是字符串开头\结尾)
" --->双引号(不是字符串开头\结尾)
\ --->反斜杠本身(让一个反斜杠失去转义的功能)
\t --->制表符(相当于tab)
阻止转义:可以在字符串最前面加r\R,能够阻止字符串中所有的转义字符。
str3 = '\t12\'3\na\" b\\n'
str4 = ' 12\'3\na\" b\\n'
s = r' 12\'3\na\" b\\n'
print(str3,str4,s)
(3)编码字符:在字符串中用\u四位十六进制数来表示一个字符。
\u字符编码值的16进制数。
(3.1)字符编码:
计算机本身只有储存数字的能力(存 数字的二进制的补码);为了能够储存数字外的符号,开发人员给每一个字符对应一个固定的数字用来对字符进行储存;每个字符对应的固定数字就是字符的编码值。每个字符和数字的一一对应关系就是编码表。常见编码表有:ASCII和Unicode编码表。
ASCII码表采用一个字节对字符进行编码:0-127 个数27 第一个为符合位
Unicode编码表,采用两个字节对字符进行编码,包含ASCII编码表:215个,第一个为符合位。
chr函数:chr(编码值) ---获取编码值对应的字符
ord函数:ord(字符) ---获取制定字符对应编码值。(打印结果是十进制)
print(chr(98),chr(0x5e34))
print(ord('成'),ord('工'))
2.字符串的操作:查
(1)获取单个字符
语法:字符串[下标] ----获取制定下标对应的字符
说明:
字符串 ---结果是字符串的表达式(字符串值、字符串变量、运算结果是字符串)
[] ---固定写法
下标 ---又叫索引,字符串确定后,字符串的每个字符都有一个下标确定这个字符在字符串中的位置。
python中下标有两种,位置:从前往后是0~字符串长度减1;位置从后往前是-1~-字符串长度
注意:获取单个字符的时候下标不能越界。
s='hello'
print(s[1])
print(s[-1])
(2)获取部分字符(字符串切片)
语法:字符串[开始下标:结束下标:步长]
从开始下标开始获取,每次增加步长;取到结束下标前为止(结束下标取不到)
说明:
字符串 ---结果是字符串的表达式(字符串值、字符串变量、运算结果是字符串)
[ ] ---固定写法
开始下标 ---下标,整数。能取到对应字符
结束下标 ---下标,整数。不能取到对应字符
步长 ---整数;如果步长是正数,从前往后取;如果步长是负数,从后往前取。
注意:
A.字符串切片的结果是字符串;不是所有切片都能取到结果
B.如果步长是正数,那么开始下标对应的字符要在结束下标对应的字符前面,才能取到值。
如果步长是负数,呢么开始下标对应的字符要在结束下标的对应字符的后面,才能取到值。
C.切片的时候下标能越界。
s4 = 'abc+123'
print(s4[0:3:1])
print(s4[2:-2:1])
print('结果是:',s4[2:-2:-1])
print(s4[0:-1:1])
print(s4[-1:2:-1])
print(s4[-1:1:-2])
print(s4[-100:100:1])
(3)获取部分字符的简写
A.省略步长
语法:字符串[开始下标:结束下标]
省略步长为1
B.省略开始下标:步长为正从字符串开头往后面获取;步长为负从字符串末尾往前获取。
语法:
字符串[:结束下标:步长]、字符串[:结束下标 ]
C.省略结束下标:步长为正,取到字符串最后一个字符为止;步长为负取到第一个字符为止。
语法:
字符串 [开始下标::]、字符串[ 开始下标:]
s='hello world'
print(s[1:])
print(s[1::-1])
print(s[:])
print(s[::-1])
4.遍历字符串:将字符串中的字符一个一个的取出来
for 变量 in 字符串:
循环体
A.直接遍历;变量取到的就是字符串
s='hello world'
for char in s:
print(char,end='')
B.下标遍历,通过遍历下标遍历字符。
print('-----------------')
for index in range(11):
print(s[index],end='')
print('-----------------')
for index in range(-1,-11,-1):
print(index,s[index],end='')
练习:统计输入的字符串中,字符‘a’出现的次数
c=0
for i in 'how are you! fine, thanks. and you':
if i=='a':
c+=1
print(c)
5.字符串相关操作
(1)字符串的运算
A.数字运算符:+ ,*
- :两个字符串相加:将两个字符串,拼接产生一个新的字符串。
s = 'abc' + 'hello'
print(s)
- :字符串正整数\正整数字符串:字符串重复指定次数,产生一个新的字符串。
s2 = 'abc' * 2
print(s2)
(2).比较运算符:> ,< ,>= ,<= ,== ,!=
A.针对两个字符串进行比较
B.字符串比较大小:按位置从前往后一对一对的比较,找出一对不相等的字符,看他们的编码值谁大,那个字符串就大。
应用:
判断一个字符是否是小写字母:'a'<=char<='z'
判断一个字符是后是大写字母:'A'<=char<='Z'
判断一个字符是否是字母: 'a'<=char<='z' or 'A'<=char<='Z'
判断一个字符是否是数字字符:'0'<=char<='9'
判断一个字符是否是中文(4e00-9fa5):'\ue400'<=char<='\u9fa5','一'<=char<='龥'
练习:
练习:统计一个字符串中大写字符的个数
# 例如:How Are You!
c = 0
for i in "How Are You!":
if 'A' <= i <= 'Z':
c += 1
print(c)
(3).赋值运算:= ,+= ,*=
st = '你好'
st1 = 'hello'
st3=st+st1
print(st3)
(4)in 和 not in
字符串1 in 字符串2 ---判断字符串2中是否包含字符串1
print('abc' in '123abc') #True
print('abc' in '123ab2c')
(5)len
len(字符串):获取字符串长度(字符串中字符的个数)
print(len('\u4e00'))
print('\u9fa5')
(6).str
str(数据) ;将其他类型数据转换成字符串;所有类型的数据都可以转换成字符串;转换的时候直接在数据的外面加引号。
(7).格式字符串:在字符串中用格式占位符,代替字符串中变换的部分;然后再使用数据对变换的部分进行赋值。
语法:包含合适占位符的符合 % (数据1 ,数据2,数据3...)
注意:数据的个数和类型要和前面字符串中格式占位的个数和类型保持一致。
格式占位符:%s ---字符串
%d ---整数
%.Nf ---浮点数(N控制小数后面的小数位数)
%c ---字符\字符对应的编码值
name = input('姓名:')
age = int(input('请输入年龄:'))
money =3.5
message = '我是%s,今年%d,工资%.1yf' % (name ,age,money)
# message = '我是'+name+',今年'+str(age)+'岁'
print(message)
6.字符的对象方法:字符串.函数()
(1)字符串.capitalze() ---将字符串中的第一个字符变换成大写字母
s1='abc'
print(s1.capitalize())
(2)设置对齐
字符串.center(width,fillchar) --让字符串在新字符串中居中,width控制新字符串的宽度,fillchar是填充字符。
字符串.rjust(width,fillchar)
字符串.ljust(width,fillchar)
字符串.zfill(width) <=>字符串.rjust(width,'0')
s1='abc'
print(s1.center(7,'+'))
print(s1.rjust(7,'0'))
print(s1.ljust(7,'!'))
网友评论