定义字符串
''单引号" "双引号 只能用于单行'" '" 三引号 可以用于多行
拼接字符串使用 + 号链接
字符串只能链接字符串其他类型字符串需要用 str() 进行转换后相加
计算字符串的长度
字母, 数字,. 小数点,_下划线, 空格 占一个字节
汉子一般占 2~4 utf-8 占 3 个字节
len() 计算字符串函数 获取字符个数
gdk 或者 2312 汉子为 2 个字节
- str1 = "人生苦短, 我用 python!"
- print(len(str1.encode())) #计算 utf-8 的字符长度
encode() 表示 utf-8 的字符编码
encode("gbk") 表示 gbk 编码
截取字符串
字符串属于序列
可以用切片来进行
string[起始值: 结束值: 步长]
切片时 字符串不存在不会报错
索引不存在会出现报错
捕获异常
- try:
- print(str1[不存在的值])
- except IndexError:
- print("索引不存在")
- p1 = "你知道我的生日吗?"
- print("程序员甲说:",p1)
- p2 = "输入你的身份证号吗:"
- print("程序员乙说:,p2")
- idcard = "123456789112345"
- print("程序员甲说:",idcard)
- birthday = idcard[6:10] + "年" + idcard[10:12] + "月" + idcard[12:14] + "日"
- print("程序员乙说: 你是" + birthday +"出生的, 所以你的生日是" + birthday[5:])
分割和合并字符串
分割字符串
- split()
- listname = str.split(sep,maxsplit)
sep 来指定分割符的 可以包含多字符默认是空白符 (空格, 换行符 ,
\n, 制表符,\t)
maxsplit 来表示分割次数, 如过我们不指定, 或者把值赋值为 - 1 那么表示没有限制能分割多少就分割多少, 如果有分割次数那么就分割指定次数 + 1 , 当使用分割次数参数时候如果指定参数了, 那么 sep 就是必选参数
alt + p 调用上一次使用的代码
- str1 = "@我 @扎克伯格 @俞敏洪 @勤奋的天使"
- list1 = str1.split(" ") #用空格分割字符串
- for item in list1:
- print(item[1:]) #输出每个好友并且去掉 @
我
扎克伯格
俞敏洪
勤奋的天使
合并字符串
- join
- strnew = string.join(iterable)
string 合并时的分隔符 字符串
iterable 可迭代对象 (可以是列表. 元组) 中所有对象以字符串来表示
- list1 = ["我","扎克伯格","俞敏洪","勤奋的天使"] #好友列表
- str1 = "@".join(list1) #用空格和 @进行链接
- at = "@" + str1 #第一个 @我没有 @所以要 [email protected]
- print("你要 @的好友为:",at)
你要 @的好友为: @我 @扎克伯格 @俞敏洪 @勤奋的天使
检索字符串
count() 检索一个字符串在另一个字符串中出现次数
str.count(sub[,start[,end]]) 如果不存在为 0 , 如果存在显示次数
sub 表示要检索的子字符串 start 表示检索的起始位置 end 表示检索的结束位子, 可选参数
find() index() 检索是否包含此字符串的
str.find(sub[,start[,end]]) 和 count 类似 返回值是 0 表示该函数首次出现在第一位
没有找到返回 - 1 rfind() 从右开始查找
str.index(sub[,start[,end]]) 如果没有会抛出异常 rindex() 从右开始查找
startwith() 是否以此字符串开头
str.startswith(prefix[,start[,end]])
endswith() 是否以此字符串结尾的
str.endswith(prefix[,start[,end]])
字母的大小写转换
大写转小写
lower()
对象名. lower()
小写转大写
upper()
对象名. upper()
去除字符串中的空格和特殊字符
特殊字符 \n 制表符 \ r 回车符 \t 换行符
strip() 去除字符串两边的空格和特殊字符
str.strip([chars]) 指定去除字符, 没有指定去除 \n 制表符 \ r 回车符 \t 换行符 空格
lstrip() 去除左侧 空格和特殊字符
str.lstrip([chars])
rstrip() 去除右侧 空格和特殊字符
str.rstrip([chars])
格式化字符串
使用 % 操作符
'%[-][+][0][m][.n] 格式化字符''%exp
使用字符串对象的 format() 方法
- str.format(args)
- {
- [index][:[fill]align][sign][#][width][.precision][type]]
- }
index 可选参数如果指定的话那么设置格式对象, 在参数列表当中的索引位置从 0 开始
fill 空白处填充字符对齐方式值 < 左对齐 > 右对齐 = 左对齐, 并且把填充内容放在最右侧
sign 有无符号 正数 + 负数 - 空格 正数 + 空格
# 指定 2,8,16 是否加前缀
二进制 0B 八进制 0O 十六进制 0x
来源: http://www.bubuko.com/infodetail-3275624.html