字符串是编程必然面临的类型,常用指数之高,不得不先了解下Python中字符串的概念与常用方法
第一部分 基础
1. 不可变类型
作为不可变类型,主要涉及两个概念赋值、引用,先看三种定义字符串的方法
// 第一种
var1 = 'Hello world'
// 第二种
var1 = "Pyhoth"
// 第三种
var2 = """
>>> a = "asd"
>>> id(a)
4431000496
>>> a = "122"
>>> id(a)
4431000552
"""
上边的代码涉及个问题:
1.1 为何说是不可变类型,怎么var1还可以等于Python?
Python 没有赋值,只有引用。可以从代码中第三种可以看出,同样的字符串a
, 内存地址是不一样的。原因在于,第二次的所谓赋值
,其实是重新创建一块内存,然后将a指向新内存地址
第二部分 内建函数
1 填充
var3 = "1234"
# 填充字符串
print(var3.center(10, "*"))
print(var3.ljust(10, '^'))
print(var3.rjust(10, "^"))
print(var3.zfill(10))
# 返回值
'''
***1234***
1234^^^^^^
^^^^^^1234
0000001234
'''
2 删减
var4 = "55785"
print(var4.strip("5"))
print(var4.lstrip("5"))
print(var4.rstrip("5"))
返回值
78
785
5578
3 变形
var5 = "thank yoU"
print(var5.lower())
print(var5.upper())
print(var5.capitalize())
print(var5.swapcase())
print(var5.title())
'''
thank you
THANK YOU
Thank you
THANK YOu
Thank You
'''
4 切分
var6 = "7890"
# 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
print(var6.partition('9'))
print(var6.partition('2'))
print(var6.rpartition("0"))
var7 = "abz\nzxy"
print(var7.splitlines())
print(var7.split("z"))
print(var7.rsplit("z"))
返回值
('78', '9', '0')
('7890', '', '')
('789', '0', '')
['abz', 'zxy']
['ab', '\n', 'xy']
['ab', '\n', 'xy']
5 连接
var8 = "ikaf"
print(var8.join("0000"))
# 判定
var9 = "kj45"
# 长度>0 && 都是字母或都是数字 true 否则false
print(var9.isalnum())
# 长度>0 && 都是字母 true 否则false
print(var9.isalpha())
print(var9.isdigit())
print(var9.islower())
print(var9.isupper())
print(var9.isspace())
print(var9.istitle())
print(var9.startswith('k'))
print(var9.endswith('5'))
6 查找
var10 = "1234567890zxc123vbndfgh"
print(var10.count('123', 0, len(var10)))
# 返回第一个满足条件的位置
print(var10.find('3', 0, len(var10)))
#
print(var10.index('3', 0, len(var10)))
# 找不到返回-1
print(var10.rfind('mm', 0, len(var10)))
# 找不到报错
# print(var10.rindex('mm', 0, len(var10)))
返回值
2
2
2
-1
7 替换
var11 = "aaaa111222hhhjjjkkk"
print(var11.replace("a", "b", 2))
# print(var11.translate())
# translate(table[,deletechars])
8 编码解码
编码就是将字符串转换成字节码,涉及到字符串的内部表示。 解码就是将字节码转换为字符串,将比特位显示成字符。
var12 = "什么鬼"
print(var12.encode())
print(var12.encode().decode())
'''
b'\xe4\xbb\x80\xe4\xb9\x88\xe9\xac\xbc'
什么鬼
'''
---------------END----------------
后续的内容同样精彩
长按关注“IT实战联盟”哦
注意:本文归作者所有,未经作者允许,不得转载