程序猿的共同点:白发、夜猫子、没对象,但是都知道字符串。
字符串
Python中字符串有单引号'' 、双引号 "" 三引号 ''' ''',引号是就近匹配原则
单引号:字符串 ' let\'s go ',需要加转义字符\
双引号:字符串 " let's go ",注意里面有个单引号,但是可以直接表示而不用加转义字符
三引号: ''' let's go '''可以表示多行字符串,可以作为注释
1.字符串的拼接
方式一 str1 + str2
result = "子林" + "燕子"
print(result)
方式二 str1 str2 在一行就可以
result = "子林" "燕子"
print(result)
方式三 占位符拼接
result = "我是 %s,%d" % ("燕子",12)
print(result)
方式四 字符串乘积
result = "zibin\n"
print(result *3)
2. 字符串的切片-获取字符串的某段字符
2.1 获取某一个字符 name[下标]
name = "abcdefg"
print(name[2])
print(name[-1])
2.2 获取字符串多个字符 name[起始:结束:步长] 或者 name[起始:结束) 默认值起始=0 结束=len(str) 步长=1
name = "abcdefghijk"
print(name[0:3])
print(name[::])
print(name[:len(name):])
print(name[3:1:-1])
print(name[-1:-2:-1])
print(name[::-1]) #翻转字符串
3. 字符函数操作
3.1 查找计算
name = "我是liuzibin\n"
print(len(name))
#查找子串的下标位置,默认是 start = 0 end= len(str) 没有找到是-1 从左到右
# find(self, sub, start=None, end=None)
num = name.find("i",4)
print(num)
#从右到左 和find一样
#rfind(self, sub, start=None, end=None)
num = name.rfind("i")
print(num)
#从左到右 和find 一样 只是找不到会报错
#index(self, sub, start=None, end=None)
#从左到右 rfind 一样 只是找不到会报错
rindex(self, sub, start=None, end=None)
3.2 字符串转换
name = "wo shi ziBin shi wo "
#替换字符串
#replace replace(self, old, new, count=None)
print(name.replace('s','b',1))
#capitalize把字符串首字符转化为大写
print(name.capitalize())
#title 把字符串里面的子串转化为大写
print(name.title())
#lower 把字符串全部转化为小写
print(name.lower())
#upper 把字符串全部转化为大写
print(name.upper())
3.3 填充压缩
name = "lililiuzibinnnnn"
#ljust(self, width, fillchar=None) 指定字符串靠左填充字符串的长度
参数 width 结果字符串的长度
fillchar 填充字符串的字符串
print(name.ljust(20,'1'))
#center(self, width, fillchar=None) 填充字符串在中间
print(name.center(20,'1'))
# lstrip(self, chars=None) 从左侧开始移除原来指定的字符串(默认是空白字符)
print(name.lstrip("li"))
#rstrip(self, chars=None) 从右侧开始移除原来指定的字符串(默认是空白字符)
print(name.rstrip('n'))
3.4 分割拼接
name = "liuzibin-sex-age-score-0830-1234567"
#split(self, sep=None, maxsplit=-1) 字符串的分割 sep分割符号 maxsplit最大的分割次数
print(name.split('-'))
print(name.split('-',4))
# partition(self, sep) 分割返回元祖 包括 左侧 + sep + 右侧内容 如果没有没有找到("原字符串","","")
print(name.partition('-'))
print(name.rpartition('-'))
# splitlines(self, keepends=None) 多行分割 根据的\n \r等分割符分割
name = "wo \n shi \r zibin"
print(name.splitlines(False))
# join(self, iterable) 将给的的可迭代对象进行拼接 和 split反的
name = "xxx"
print(name.join('zibin'))
3.5 字符串判定
name = "liuzibin123.mp3"
#isalpha 字符串中是否全是字母
print(name.isalpha())
#isdigit 字符串中是否全是数字
print(name.isdigit())
#isalnum 字符串中是否全是数字或者字母
print(name.isalnum())
#isspace 字符串中是否全是空白符号 空格 换行之类
print(name.isspace())
#startswith(self, prefix, start=None, end=None) 判断字符是否什么前缀开头
print(name.startswith("zi",3,8))
# endswith(self, prefix, start=None, end=None) 判断字符是否什么结尾开头
print(name.endswith(".mp3"))
# in 字符串是否被包含
print("zi" in "woshizibin")
如果需要了解更多Python知识,请查看
Python的基础知识之常用类型-字典
Python的基础知识之常用类型-列表
Python的基础知识之常用类型-字符串
最后赠言
学无止境,学习Python的伙伴可以多多交流