Python基础变量主要有字符型和数值型两种,相比于数值型数据,字符型数据可以理解成是一种文本,在语言领域的应用更加广泛。Python的字符串数据类型属于不可改变数据类型,所以当创建一个变量的类型为字符串时,这个变量的字符串的字符不可以修改或者删除,只能在一个新的变量上进行操作。
Python提供了以下几种方式去标识字符串(str):
- 单引号(')
- 双引号(")
- 三引号('''或者""")
'This is python' "This is python" #双引号和单引号用法一样,但不能混用 '''\ This is python a This is python b This is python c''' #三引号相对于单引号或者双引号,自身有以个
Python字符串转义:
- 单引号转义
- 双引号与反斜杠转义
- 指定字符串
print('what's happend') #python不能辨识这段字符串从何处开始何处结束 输出结果: File "D:/pystudy/字符串.py", line 129 print('what's happend') ^ SyntaxError: invalid syntax print('what\'s happend')#反斜杠转义单引号 输出结果: what's happend
print(r'D:\name\python') #用r(R)指定r(R)后面的单引号或双引号标识的是一个字符串
输出结果:
D:\name\python
Python的字符串拼接(相加)和字符串相乘:
a = 'abc' b = 'def' c = a + b print(c) d = 'ac' * 8 print(d) 输出结果: abcdef acacacacacacacac
Python的字符串索引:
python的字符串索引分为正索引和负索引,通常说的索引就是指正索引。正索引是从0开始的,也就是第一个字母的索引是0,第二个索引是1,以此类推。负索引是从右到左去标记字母的,然后加上负号(-)。负索引的第一个值是-1而不是0,如果是0,那么会导致有两个索引0,这种情况是不允许的。
字符串 P Y T H O N
索引 0 1 2 3 4 5
负索引 -6 -5 -4 -3 -2 -1
Python提取指定位置的字符:
name = 'python' # 索引 012345 a = name[0] b = name[4] print(a) print(b) 输出结果: p o
Python字符串切片和步长:
name = 'python' # 索引 012345 a = name[0:3]#取字符串索引012 不包含3 b = name[:-1] #等于name[0:-1] 取字符串索引01234不包含-1,这里-1相当于5的意思 c = name[:6] d = name[:]#从左到右取字符串 print(a) print(b) print(c) print(d) 输出为: pyt pytho python python #步长(默认步长为1) e = name[0:3:2]#很明显这里加了个步长2,第一个索引为0,2的意思就是每次索引加2,所以下一个索引为0+2=2。 f = name[::2]#从左到右取字符,从第一个索引开始每个索引加2 g = name[-1:-4:-2]#因为从右到左取字符,为负索引,索引步长也需要为负。 h = name[::-1]#从右到左取字符,步长为-1,也就是反正字符串 print(e) print(f) print(g) print(h) 输出为: pt pto nh nohtyp
Python字符串的方法:
全部大写:
name = 'jiaming' new_name = name.upper() print(new_name) # 把这个字符串全部变成大写
全部小写:
name = 'JIAMING' new_name = name.lower() print(new_name) # 把这个字符串全部变成小写
以什么开头:
name = 'jiaming' new_name = name.startswith('jia') if new_name: print('是以jia开头') # 判断这是不是字符串是不是以jia开头的
以什么结尾:
name = 'jiaming' new_name = name.endswith('ng') if new_name: print('是以ng结尾') # 判断这是不是字符串是不是以ng结尾的
统计出现的次数:
name = 'aaabbbccc' new_name = name.count('a') print(new_name) # 统计name这个字符串中a出现的次数
字符串替换:
name = '我去你大爷的大爷的' new_name = name.replace('大爷,'**',1)#第一个参数为要替换的字符或者字符串,第二个参数为要替换的内容,第三个参数是指从左到右替换多少个大爷。 print(new_name) # 替换字符串中的内容
去除头尾两边的空格:
name = ' jiaming ' new_name = name.strip() new_name1 = name.lstrip()#左边的空格 new_name2 = name.rstrip()#右边的空格 print(new_name) # 去除头尾俩遍的空格
分割:
name = 'jia,ming' new_name = name.split(",") print(new_name) #通过,将字符串name进行切割
字符串格式化:
name = 'jiaming{}' new_name = name.format('好靓仔') print(new_name) # 字符串格式化
is系列:
判断是不是阿拉伯数字,返回的是布尔值:
name = 'jiaming' new_name = name.isdigit() print(new_name) # 判断是不是阿拉伯数字,返回结果是布尔值
判断是不是数字和字母,返回的是布尔值:
name = 'jiaming' new_name = name.isalnum() print(new_name) # 判断是不是字母和数字,返回结果是布尔值
判断是不是纯字母和汉字,返回的是布尔值:
name = 'jiaming' new_name = name.isalpha() print(new_name) # 判断是不是纯字母和汉字,返回的是布尔值
获取长度:
name = "jiaming" print(len(name)) 输出结果: 7