一. 什么是字符串
字符串的定义与作用:
1、在非注释语句中,凡是用引号括起来的部分都是字符串(str:英文全写为string)
2、字符串的作用是用来记录文本(文字)信息,与人沟通交流。
name = "字符串"
print("字符串",name)
结果:
字符串字符串
二.字符串表现形式
- 引号
" "
' '
''' ''' //多用于多行注释
""" """ //多用于多行注释
- 空字符串
括号里面除了有引号以外什么内容也没有,计算机也能把它读出来的值 - 非空字符串
在引号内放入的一些文本信息,人可以看到这个字符串的文本并且计算机会打印出引号内的信息。
name = "hello world"
print("name")
- 单引号和双引号的区别
单引号内的双引号不算结束符,双引号内的单引号不算结束符
print ("I'm chinese")
结果:
I'm chinese
- 三单引号字符串的作用
三引号字符串的换行会自动转换为换行符’\n
print("my name is zahngsan\nI'm from china")
print(''' my name is zhangsan
I'm from china''')
结果:
my name is zahngsan
I'm from china
my name is zhangsan
I'm from china
- 三单引号里面可以包含单引号和双引号
name ='''I'm a new "bard" '''
print(name)
结果:
I'm a new "bard"
三.字符串格式化操作
%s | 字符串占位符 |
---|---|
%d | 数字占位符 |
%f | 浮点型数字占位符 |
%.2f | 控制浮点型数字占位符 |
print('my name is %s'%('zhangsan')) //字符型
print('my name is %s ,my age is %d,my height is %f'%('zhangsan',20,1.80)) //字符型+数字%d+浮点型%f
print('my name is %s ,my age is %d,my height is %.2f'%('new bard',20,1.80)) //%.2f 输出小数不会太长
结果:
my name is zhangsan
my name is zhangsan ,my age is 20,my height is 1.800000
my name is new bard ,my age is 20,my height is 1.80
四.字符串索引
字符串里的每一个个体都被称作字符也是该字符串的一个元素,每一个元素都对应一个索引值(下标);
下标从左往右从0开始,从右往左-1开始
五. 对字符串进行操作
- 字符串切片
a ="abcdefg"
print(a,type(a)) #查看a的类型
print(a[1]) #取a的第一个元素
print(a[2:3]) #取a的第2个元素
print(a[0:3]) #字符串切片,取头不取尾,012
print(a[1:]) #除过第0个其他都取
print(a[:]) #全取
print(a[:-1]) #最后一个不取,0到-1
print(a[2:5:2]) #234每两个取一个,2和4
print(a[-1:-6:2]) #-1-2-3-4-5每两个取一个
print(a*3) #字符串重复操作,a输出三次
结果:
abcdefg <class 'str'>
b
c
abc
bcdefg
abcdefg
abcdef
ce
abcdefgabcdefgabcdefg
- 字符串统计
name = "zhangsan"
print(name.count("a")) #统计字母a个数
结果:2
- 判断
name = "zhangsan"
print(name.endswith("x")) #判断字符串结尾字符
False
print("123".isdigit()) #判断字符串123是否为数字
True
print("wq123q".isalnum()) #判断字符串wq123q是否为数字字母组合
True
print("wql".isalpha()) #判断字符串是否为字母
True
print("111".isdecimal()) #判断字符串是否为十进制
True
print(name.isidentifier()) #判断是否为合法的标识符
False
print("abc".islower()) #判断是否为小写字母
True
print("Abc".istitle()) #判断首字母是否大写
True
print("123".isprintable()) #判断字符串是否可打印,tty File OR driver File
True
print(" ".isspace()) #判断是否为空格
True
print("www.baidu.com".startswith("www")) #判断以是否以www前缀开始
- 拼接
a = "abc"
b = "def"
print(a+b) #字符串拼接,ab类型必须相同
# 若 b = 666666 则 print(a+str(b)) # 转换b为字符串
结果:
abcdef
- 对字符串操作后输出
name = "zhangsan"
print(name.capitalize()) #将字符串首字母大写
Zhangsan
print(name.center(50,"-")) #将字符串格式化居中输出
---------------------zhangsan---------------------
print("abc".ljust(10,"+")) #输出十个字节,空出的用+右边补齐
abc+++++++
print("abc".rjust(10,"+")) #输出十个字符,空出来的+左边补齐
+++++++abc
print(" ABC".lstrip()) #左边空格不输出
print("ABC ".rstrip()) #右边空格不输出
print(" ABC ".strip()) #中间空格不输出
ABC
ABC
ABC
print(name.format(name="anliu",yunwei="linux")) #格式化输出
print(name.format_map({"name":"anliu","yunwei":"linux"})) #字典的方式格式输出
- 转换
print('hello'.upper()) #转换为大写
print('HELLO'.lower()) #转换为小写
print('hello world'.title()) #将字串符当中的单词首字母大写,单词以非字母划分
print("anliu".replace("a","A")) #替代,A替代a
print("abc".swapcase()) #大小写相互转化
- 索引
name = "zhangsan"
print(name.index("a")) #获取索引a,在第几个位置
print(name.find("a")) #获取索引
2
2