Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。接下来,记录一些本人自主学习Python的一些笔记:
打印
# 打印30个等号
print("="*30)
# 去掉换行打印
print("=====",end="")
# 至少占2个位置
print("====%2d"%(d))
# 打印格式化字符串,-左对齐
print("%d*%d=%-2d"%(i,j,z),end="")
切片:[起始位置:结束位置:步长]
name = "laowangdexifulvle"
# 从第2个位置截取到第五个位置
b = name[2:5]
print("b:%s"%b) b:owa
# 从第二个位置截取到最后
b = name[2:]
b = name[2:10:2] #
print("b:%s"%b) b:oage
# 从后往前数,从倒数第一个到倒数第三个字符,步数为1
b = [-1:-3:-1]
print("b:%s"%b) b:el
# 从后往前截取,步数为1
b = [::-1]
print("b:%s"%b) b:elvlufixedgnawoal
字符串查找
name = "gebiwangshushu"
# find查找:默认是从左往右查找
# 搜索当前字符在搜索体里的位置
b = name.find("wan") b:4
# 设置搜索区间,(起始位置为0,结束位置为0,在这个区间中搜索)
b = name.find("wan",0,10)
# rfind查找:默认是从右往左查找,用法与find相同
# index查找:与find作用相同。区别:find查找时如果找不到,返回-1,而index则报错
# rindex查找,与index作用相同。只不过是rindex是从右往左查找
查看字符出现的频率
name = "gebiwangshushu"
# 查看u在name字符串中出现几次
b = name.count("u")
# 设置区间查找(设置区间查找)
b = name.count("u",2,5)
字符串替换
name = "gebilaowang"
# 匹配到a全部替换成A
name = name.replace("a","A")
# 匹配到a替换成A,只替换成1个
name = name.replace("a","A",1)
# 匹配:a:1,b:2....
pattern = str.maketrans("abcdef","123456")
print("abcvg".translate(pattern)) # 将字符串中的字符替换成对应的数字:123vg
字符串切割
- split切割
name = "ni hao python"
# 全切
name.split(" ");
# 切1刀
name.split(" ",1)
-partition切割(从左往右匹配,切割成三部分)
name = "hello world and python and android"
name = name.partition("and")
print(name) # name:("hello world ","and"," android")
-rpartition切割(从右往左匹配,切割成三部分)
name = name.partition("and")
print(name) # name:("hello world ","and"," android")
字符串判断
# 判断字符串是否以h开头
startswith("h")
# 也可以传入一个元组,进行多值匹配,判断字符串是否以h或j开头
startswith(("h", "j"))
# 判断字符串是否依h结尾
endswith("h")
# 也可以传入一个元组,进行多值匹配,判断字符串是否以h或j结尾
endsswith(("h", "j"))
# 判断字符串是否是纯字母的
name.isalpha()
# 判断字符串是否是纯数字
name.isdigit()
# 判断字符串是否既有数字又有字母
name.isalnum()
# 判断字符串是否只有空格
name.isspace()
# 判断字符串是否是合法的变量
name.isidentifier()
# 判断是否是正整数
name.isnumeric()
# 判断是否为标题(即所有单词首字母大写)
name.isTitle()
字符串转大小写
# 转大写
name.upper()
# 转小写
name.lower()
# 大写首字母
name.capitalize()
连接字符串
# 连接
m = "-"
name = ["hello","world"];
m = m.join(name)
print(m) # m: hello-world
字符串对齐
name = "hello world"
# 字符串右对齐,并且将字符串用空格填充至20长度
name.rjust(20)
# 也可以传入指定的填充文本,字符串右对齐,并且将字符串用“=”填充至20长度
name.rjust(20, "=")
# 或者使用format方法,<为左对齐,>为右对齐,^为居中对齐
format(name, ">20")
# 也可以传入指定的填充文本,字符串右对齐,并且将字符串用“=”填充至20长度
format(name, "=>20")
# 字符串左对齐,并且将字符串用空格填充至20长度
name.ljust(20)
# 也可以传入指定的填充文本,字符串左对齐,并且将字符串用“=”填充至20长度
name.ljust(20, "=")
# 或者使用format方法,<为左对齐,>为右对齐,^为居中对齐
format(name, "<20")
# 也可以传入指定的填充文本,字符串左对齐,并且将字符串用“=”填充至20长度
format(name, "=<20")
# 字符串居中显示,并且将字符串用空格填充至20长度
name.center(20)
# 也可以传入指定的填充文本,居中显示,并且将字符串用“=”填充至20长度
name.center(20, "=")
# 或者使用format方法,<为左对齐,>为右对齐,^为居中对齐
format(name, "^20")
# 也可以传入指定的填充文本,字符串居中对齐,并且将字符串用“=”填充至20长度
format(name, "=^20")
str与bytes互转
# bytes object
b = b"example"
# str object
s = "example"
# str to bytes
bytes(s, encoding = "utf8")
# bytes to str
str(b, encoding = "utf-8")
# an alternative method
# str to bytes
str.encode(s)
# bytes to str
bytes.decode(b)