字符串的创建
字符串是 Python 中最常用的数据类型,可用 ’ 或 " 来创建,如:
var1 = 'Hello'
var2 = "world"
当字符串中有单引号时,可以使用双引号来创建,避免语法错误,如:
var = "It's OK."
当字符串中有双引号时,可以使用单引号来创建,避免语法错误,如:
var = 'He said:"Are you ok?"'
字符串是不可变对象,不能修改其中的值
字符串的运算
- 字符串拼接
字符串只能与字符串进行拼接,数字与字符串拼接时,需先将数字转化成字符串str();
a = 1 #数字
b = "ABCDEFG" #字符串
c = '3' #字符串
#a+b会报错,int整数,str字符串,字符串与数字不能拼接
print(1+1) #输出整数2,数字之间可以进行算数运算
print(b+c) #输出ABCDEFG3,字符串之间可用加号进行拼接
#如果想拼接字符串和数字,需要用str()函数将数字转化为字符串类型
print(str(a) + b) #输出1ABCDEFG
#字符串也可以转换成数字,前提条件是,字符串的内部本身是数字
print(a + int(c)) #输出4
- 字符串重复输出
字符串可以和数字n相乘,表示n个字符串
a,b = 3,0
c = 'ABCD'
print(a * c) #输出ABCDABCDABCD,连续输出三个ACBD
print(b * c) #输出0个字符串,控制台无输出值
- 字符串中的转义符
在需要在字符中使用特殊字符时,python用反斜杠()进行转义,常用的转义符有:\n换行,\t制表符
print('c:\note1.txt') #第一行输出c:,第二行输出ote1.txt,\n表示换行符
print('c:\\note1.txt') #输出c:\note1.txt,前面的\使后面的\不进行转义
print(r'c:\n\a\b\c\d\f\g')#在字符串的外面加一个r,表示后面的字符串都不进行转义
print('c:/note1.txt')#在python中,写文件路径时,可以使用/表示路径,代替\
- 字符串的下标
在Python中,字符串的下标索引值以 0 为开始值,-1 为从末尾的开始位置。
str = 'abcd'
print(str[0])#输出a,输出字符串的第0位
print(str[-1])#输出d,输出字符串的最后一位
print(len(str)) #输出4,len()函数,可以查看字符串的长度
- 字符串中的切片
字符串中的切片[起始值:终止值:步长],包含起始值,不包含终止值,步长是每几位取一次值:
str = "ABCDEFGHIJKLMN"
print(str[4:7])#输出EFG,当步长省略时,默认为1
print(str[:3])#输出ABC,起始值为省略,表示从第0位取到终止值
print(str[10:])#输出KLMN,终止值为省略时,表示从起始值取到尾
print(str[::3])#输出ADGJM,当起始值和终止值都省略时,表示从头取到尾
print(str[-3:])#输出LMN,字符串的下标或切片用负数,表示从后向前数
print(str[-3:0:-1])#输出LKJIHGFEDCB,步长为负数时,表示从后往前取值
更多可查询列表:附录:Python快速参考
字符串的格式化
如何在字符串里加入变量,进行填值?
传统的方法如下:
a,b = 3,5
print(str(a)+'+'+str(b)+'='+str(a+b))
#输出3+5=8,虽然输出正确,但是特别麻烦
使用占位符%的方式:%S表示字符串,%d表示整数类型,%f表示浮点类型…
1、前后参数的数量要一致,否则会报错
a,b = 3,5
print('%s+%s=%s'%(a,b,a+b)) #输出3+5=8
2、可通过数字进行规定占位符的长度
如,设置数字为n,当输入位数只有m位时,则补n-m位空格,如果m>n,则正常显示所有字符
info1 = "他叫%5s,她叫%5s,今年是%2d年"%("周杰伦","昆凌",2020)
print(info1) #输出:他叫 周杰伦,她叫 昆凌,今年是2020年
3、对于数字而言,还可以根据需要在左侧补0,字符串不能补0,会自动补空格
info2 = "他叫%s,她叫%05s,今年是%05d年"%("周杰伦","昆凌",20)
print(info2)#输出:他叫周杰伦,她叫 昆凌,今年是00020年
4、默认所有字符都是右对齐,如果需要左对齐,那么加上一个负号
info3 = "他叫%-5s,她叫%-5s,今年是%-5d年"%("周杰伦","昆凌",20)
print(info3)#输出:他叫周杰伦 ,她叫昆凌 ,今年是20 年
5、%f的用法
#用%f,默认保留6位小数
number1 = "这栋楼高%f米"%(6.5)
print(number1)#输出:这栋楼高6.500000米
# %a.b,a表示最少显示多少位,输入位数不足时,在前面补内容,b表示保留几位小数
number2 = "这层楼高%06.2f米"%(3.2)
print(number2)#输出:这层楼高003.20米,3前面补了两位0
#浮点数会四舍五入,需要左对齐时,加上一个负号即可
number3 = "这层楼高%-6.1f米"%(3.68)
print(number3)#输出:这层楼高3.7 米
使用 ‘{}’.format() 方法如下:
#最低位数用:n表示
str1 = "He name is {:6},She name is {:6},age is {:6}。".format('周杰伦','昆凌',23)
print(str1)#输出:He name is 周杰伦 ,She name is 昆凌 ,age is 23。
#对齐方式:字符串默认左对齐,数字默认右对齐
#如果要改变对齐方式,>表示右对齐,<表示左对齐,^表示中间对齐
str2 = "He name is {:>6},She name is {:<6},age is {:^6}。".format('周杰伦','昆凌',23)
print(str2)#输出:He name is 周杰伦,She name is 昆凌 ,age is 23 。
#前后参数的个数不一致时,前>后,报错,后>前,不报错
str3 = "He name is {},She name is {},age is {}。".format('周杰伦','昆凌',23,24)
print(str3)#输出:He name is 周杰伦,She name is 昆凌,age is 23。
#对于数字而言,可以根据需要在左侧补0
str4 = "He name is {},She name is {},age is {:06}。".format('周杰伦','昆凌',23)
print(str4)#输出:He name is 周杰伦,She name is 昆凌,age is 000023。
#也可以使用下标法来表示字符串内容
str5 = "He name is {0},She name is {2},age is {1}。".format('周杰伦',23,'昆凌')
print(str5)#输出:He name is 周杰伦,She name is 昆凌,age is 23。
#下标法要注意,要填就全填,不要只填一半,否则会报错
在Python3.6以后的版本中,可以使用f’'的方式,表示格式化字符串
name1 = "周杰伦"
name2 = "昆凌"
print(f'He name is {name1},She name is {name2}')
#输出:He name is 周杰伦,She name is 昆凌
三引号
三引号既可以是三个单引号’’’,也可以是三个双引号""",它允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符,如:
var = '''这是一个多行字符串,
多行字符串可以使用制表符TAB ( \t )。
也可以使用换行符 [ \n ]。'''
在三引号中的内容,按原样输出(所见即所得),三引号主要有以下两个作用:
作用一:定义多行字符串
三引号可以让程序员从引号和特殊字符串的泥潭里面解脱出来,如:
var = ''' He said:"Are you OK?"
She said:"It's ok."'''
另一个典型用例是,可用于写入一段HTML或SQL,如:
sql_crete_table = '''CREATE TABLE CUSTOMER(
FULL_NAME CHAR(20) NOT NULL,
AGE INT,
SEX CHAR(1))'''
从上面的例子可以看出,采用多行字符串定义,可以使程序更加清晰,规整,可读性更好。
作用二:进行多行注释
Python中注释是井号 #,但是如果需要描述多行注释的时候,就需要每行都写一个 #,这时用三引号进行多行注释,就显示很简单方便了。
"""
这是多行注释第一行
这是多行注释第二行
这是多行注释第三行
"""
扩展:多行语句在一行输出
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句
str = '''item_one \
item_two \
item_three
'''
print(str)#在同一行输出item_one item_two item_three
在 [], {}, 或 () 中的多行语句,则不需要使用反斜杠()
str = ['item_one',
'item_two', 'item_three',]
print(str)#在同一行输出['item_one', 'item_two', 'item_three']
字符串的常用内建函数
- index()函数:找到某一个字符/串位于字符串中的第几位
str = "ABCD"
print(str.index('C'))#输出2,找到'C'位于字符串中的第几位
- len() 函数:计算字符串的长度
str = "ABCD"
print(len(str))#输出4
…