Python 数据类型 str int float
字符串的定义
# 使用转义“\”使得引号内的引号显示 str1 = 'I\'am a student' str2 = "Jason said:\"I like\000 you\"" print(str1,str2,sep="\n") str3 = "jiangsu" print(str3[2]) #索引从零开始 print(str3[0:6]) #[起始位置:结束位置] print(str3[1:6:2]) #[起始位置:结束位置:步进值] print(str3[2:]) #[起始位置:]不写后面,去索引后面 print(str3[:2]) #[:结束位置]不写前面,取索引前面
注意事项
str1='' #空字符串 str2=len('') str1=' ' #有空格的字符串,非空字符串 str2=len(' ') ''!=' '
常用转义符
print('hello\tpython') #\t 横向制表符,空出四个空格,键盘tab键 print('hello\npython') #\n 换行符 print('hello \\t') #打印出\t,转义字符也当做字符串的一部分 print(r'hello\tpython') #字符串前加个r,取消转义
常用字符串操作
查看字符串长度 len()函数
len('hello python') #查看字符串长度 len('hello python啊') #查看字符串长度,中英文均占一个字符长度
大小写转化 lower(),upper()函数
str3='HELLO' str4='python' str5='MyName' print(str3.lower()) #将字符串中所有大写字符转小写 print(str4.upper()) #将字符串中所有小写字符转大写 print(str5.lower()) print(str5.upper())
字符串连接
str5='hello' str6='python' print(str5+str6) #字符串用“+”拼接 print(str5+','+str6) print(str5+'\t'+str6)
str7='hello' ','.join(str7) #用“,”把字符串分开 str8='a'.join('python') #本行的a与下行的a需一致方可完成列表分割 str9=str8.split('a') print(str9)
字符串切片
str11='abcdefg' str11[1:] #切出索引1到最后 str11[::] #切出所有 str11[::2] #步长为2,切所有
字符串操作进阶
实际业务中字符串常用操作:取出字符串中的数字、字符、大小写字母
方法1:for循环 str.isdigit() 检测字符串是否只由数字组成 str.islower() 检测字符串是否只由小写字母组成 str.isupper() 检测字符串是否只由大写字母组成
str12='AAbbbCC223' number='' lower='' upper='' for i in str12: if i.isdigit(): number=number+i elif i.islower(): lower=lower+i elif i.isupper(): upper=upper+i print(number+'\t'+lower+'\t'+upper)
方法2:正则表达式
\d 匹配任意数字,等价于[0-9]
\D 匹配任意非数字
[0-9] 匹配任何数字,类似于[0123456789]
[a-z] 匹配任意小写字母
[A-Z] 匹配任意大写字母
[a-zA-Z0-9] 匹配任意字母及数字
import re #导入正则表达式re模块 str13='AA1bbbCC223d' print('.'.join(re.findall(r'[A-Za-z]',str13))) #提取字母,不区分大小写 print(','.join(re.findall(r'[a-z]',str13))) #提取小写字母 print('-'.join(re.findall(r'[A-Z]',str13))) #提取大写字母 print('~'.join(re.findall(r'[0-9]',str13))) #提取数字 print(re.sub('\D','=',str13)) #提提取数字,参数1是匹配出任意非数字,用参数2替换掉, re.findall(r'[A-Za-z]',str13)
数据类型强制转换
注意:数字可以转字符串,但只有只包含数字的字符串才能转成数字类型
float(6) #整数转浮点数 int(6.66) #浮点数转整数 a=str(1.23) #数字转字符串 print(a) type(a) int('a123') #错误,只有只包含数字的字符串才能转成数字类型 int('1.23') #只有只包含数字的字符串才能转成数字类型
其他
str11='a#b#c#d' str12='?' list11=['e','f','g','h'] str12.join(str11) str11.split('#',1)