字符串str
一.定义
字符串是表示文本的一种数据类型,由单引号或者双引号包围起来的文本,引号内面的内容称为元素。
在Python中字符串是Unicode字符序列,字符串中的元素可以是任意字符,
二.作用
传递信息
三.性质
- 字符串是有序的(下标,切片)
- 字符串是不可变的(没有增删改)
- 字符串的容器符号
' ', " ", ''' ''', """ """
- 字符串分类:普通字符、转义字符、原始字符串
四.转义字符 and 原始字符串
有特殊含义的符号,转义字符用 +数字字符 表示 ,与原本的意思不一样
\n
-回车换行符 、\r
-回车符、\t
-制表符、\\
-反斜杠字符、
\ddd
-1-2位八进制数所代表的的字符,d的值可以是0-7的任何数字
\xhh
-1-2位十六进制数所代表的的字符,h的值可以是0~f的任何字符
print('ab\ncd\\t\\\'')
# ab
# cd\t\'
转义字符的作用:\ +指定字符
可以使有特殊含义的字符变得有特殊意义,使没有特殊含义的字符变得有特殊含义,
原始字符串:是python中一类比较特殊的字符串,以r
或R
为标志,在原始字符串中反斜杠\不在具有转义的作用,使转义字符变成其本身
注意:一个转义字符的长度是1,添加了原始字符串的转义字符的长度是2
五、访问字符串
- 索引or负索引
索引都是整数,正索引从0开始从左向右数,负索引从-1开始,从右往左数。索引不能越界
str='(hello world!)'
print(str[2]) # e 第三个字符
print(str[-1]) # ) 最后一个字符
-
切片运算符
:
访问字符串中的一系列项目 切片是一个左闭右开区间,切片的作用是从原来的容器中提取元素组成新的容器变量[起始范围:结束范围:步长] 不写起始范围默认从头开始,不写结束范围默认取到尾,步长默认为1
str1='''
从前有座山,
山上有座庙,
庙里有个老和尚说
'''
print(str1[1:6])
print(str1[15:20:2])
print(str1[-12:-17:-1])
# 从前有座山
# 庙有老
# 庙座有上山
六、对字符串的操作
- 字符串中的具体元素无法改变,但可以将字符串重新赋值给相同的名字
my_string = 'lili'
my_string[2]='g' # 'str' object does not support item assignment
print(my_string)
my_string = 'cindy'
print(my_string) # my_string=cindy
- 不能删除字符串中的字符,但是可以用
del
删除整个字符串
七、字符串的运算
- 字符串的串联(拼接)
+
运算符在python中执行串联操作,得到新的字符串对象
str1 = 'lili'
str2 = 'and'
print(str1 + str2) # liliand
- 字符串的重复
*
运算符
print('*'*10) # ******
- 字符串比较大小
a. 比较第一对不相同元素的大小
b. python 使用的是ASCII码的拓展版Unicode
–也叫万国码
c.chr()
-能够将进制(二,八,十)转换成对应的符号
二进制ob 八进制0o 十六进制ox hex()-进制转为十六进制 oct()-将进制转为八进制
d. ord()
-能够将符号转换成十进制
print('ab'>'c') # False
print(ord('。')) # 12290
print(chr(97)) # a
print(hex(0b01000001)) # 0x41
数字0-9:48-57
、A-Z:65-90
、a-z:97-122
、所有中文:\u4e00-\u9fa5
print(chr(ord('\u4e00')),chr(ord('\u9fa5')))
打印所有中文
for i in range(19968,40870):
print(chr(i),end='')
- 字符串的成员运算
in
、not in
print('a' in 'abfcsf') # True
八、字符串的遍历
str3='Hello World'
- 直接遍历
for i in str3:
print(i)
- 间接遍历
for i in range(len(str3)):
print(str3[i])
str4='王者荣耀'
for i in range(0,len(str4),2):
print(str4[i],end='')
九、字符串的方法和函数
-
upper()
—小写字母转大写字母print('afsdsf'.upper())# AFSDSF
-
lower()
—大写字母转小写字母print('aSDF'.lower())#asdf
-
capitalize()
—将字符串中首字母转大写,必须以字母开头的字符串print('afsdsf'.capitalize())#Afsdsf
-
title()
—将字符串中所有连续英文字母的子串首字母大写print('afsdsf123;.b'.title())#Afsdsf123;.B
-
split()
—以指定符号为切割点,将切割点左右的字符串分开并保存到列表中print('1,2,3,4,5,'.split(','))
-
jion()
—将一个所有元素均为字符串的序列中的所有元素以指定元素拼接起来result1=','.join(['1', '2', '3', '4', '5', '',]) print(result1)
-
strip()
—默认去掉字符串头尾的空符号(空格、\t、\n等),也可以去掉指定符号str5=' \nabc\t\n ' print(str5.strip()) print('*'*10)
-
replace('old_str','new_str')
—替换,将一个字符串中的全部的old_str
替换成new_old
replace('old_str','new_str','次数')
—将一个字符串中指定数量的old_str
替换成new_str
str6=',1,2,3,' print(str6.replace(',', ''))