你好我是nullptr.cpp,今天是我们学习Python的第三天;先说明一下今天的任务是完成进制编码的学习,这和后面学习文件操作有关系;然后就是稍微功能多点的字符串类型。大家又有发现错误的地方希望大家给nullptr.cpp在下方留言,首先谢谢大家的观看🐳🐳🐳
进制编码_字符串类型
🍊.进制编码
🍉进制转换
恰好你学过C语言,对于这个进制转换,可以说就是看一下就行,接下来我们一起看看!进制转换是以我们常用的10进制作为桥梁转换的。
转换进制的函数:bin()转换为二进制;oct()转换为八进制;hex()转换为十六进制,
# 二,八,十六进制先转为十进制,在转换为其他
# 计算机里面是二进制
# 十进制(int)转换为二进制,八进制,十六进制(这三个都是以字符串类型存在)
v2 = bin(25)
print(v2) # "0b11001"
v8 = oct(25)
print(v8) # "0o31"
v16 = hex(25)
print(v16) # "0x19"
print(type(v16)) # <class 'str'>字符串类型
print(f"25的二进制:{v2};八进制:{v8}十六进制:{v16}")
# 为二进制,八进制,十六进制转换十进制,base = 参数
i2 = int("0b11001",base = 2)
print(i2)
i8 = int("0o31",base = 8)
print(i8)
i16 = int("0x19",base = 16)
print(i16)
print(f"0b11001的二进制:{i2};0o31的八进制:{i8};0x19的十六进制:{i16}")
注意些语法,还有就是十进制转为其他进制时,所生成的类型不是整型而是字符串
🍉编码
这里我们只是大概的描述一下,后面文件操作时候,我们会更加深入的了解。unicode也被称为万国码,为全球的每个文字都分配了一个码位(二进制表示)本质上:utf-8是对unicode的压缩,用尽量少的二进制去与文字进行对应。所以在传输的时候,网络处理追求更快就使用了utf-8。gbk编码是我国由国家信息标准委员会制作,特别是对中文和日韩文字进行编码,推荐还是使用Unicode和UTF-8,毕竟万国码!!!
# 在py里面,文件存储和网络传输时,不会直接使用unicode,而在内存中会unicode编码。
# 在文件存储和网络传输时,会将字符串转化为 utf-8 / gbk
#字符串(str) "nullptr.cpp" unicode处理 一般在存储内存
#字节(byte) b"nullptr.cpp" utf-8编码 or gbk编码 一般用于存储文件或网络处理
# 字符串类型
name = "nullptr.cpp"
print(name) # nullptr.cpp
# 字符串转换为字节类型,也就是我们说的编码encode
data = name.encode("utf-8")
print(data) # b'nullptr.cpp'
# 把字节转换为字符串,也就是我门说的解码decode
old = data.decode("utf-8")
print(old)
🍊.字符串类型
我们在第一天和大家简单介绍了一下,今天我们开始深入一下。下面是使用的基本形式。
"xxxxx".功能(...)
v1 = "xxxxx"
v1.功能(...)
🍉startswith() and endwith()函数
1. startswith()判断字符串是否以 XX 开头?得到一个布尔值
my_str = "nullptr.cpp"
result = my_str.startswith("null")
print(result) # 值为True
2. endwith()判断字符串是否以 XX 结尾?得到一个布尔值
my_str = "nullptr.cpp"
result = my_str.endswith("cpp")
print(result) # 值为True
案例
# 案例
address = input("请输入学校名称:")
if address.endswith('小学'):
print("小学生")
else:
print("非小学生")
🍉 判断字符串是否为十进制数?得到一个布尔值
- “xxx”.isdecimal()
num = "1238871"
num_str = "qwer"
res01 = num.isdecimal()
res02 = num_str.isdecimal()
print(res01) # True
print(res02) # False
- isdecimal()和isdigit() 都可判断字符串是不是纯数字但是有些区别,后者不是很准确,看下面
n1 = "123"
print(n1.isdecimal()) # True
n2 = "①"
print(n2.isdecimal()) # False
n3 = "123"
print(n3.isdigit()) # True
n4 = "①"
print(n4.isdigit()) # True
isdigit()函数可能不是很准确的判断字符串数字是不是纯数字,推荐使用isdecimal函数
🍉去除字符串两边的 空格、换行符、制表符,得到一个新字符串
- “xxx”.strip()
msg = " H e ll o world "
data = msg.strip()
print(data) # 将msg两边的空白去掉,得到"H e ll o world"
- “xxx”.lstrip()
msg = " H e ll o world "
data = msg.lstrip()
print(data) # 将msg左边的空白去掉,得到"H e ll o world "
- “xxx”.rstrip()
msg = " H e ll o world "
data = msg.rstrip()
print(data) # 将msg右边的空白去掉,得到" H e ll o world"
- “xxy”.strip(“y”)
msg = " H e ll o world "
data = msg.strip("world")
print(data) # 将msg两边的world去掉,得到" H e ll o "
- “yxx”.lstrip(“y”) 和 “xxxy”.rstrip(“y”)
这两个也是和上面一样,我们就不一一展示了。
🍉字符串大小写转换,得到一个新字符串
- “xxx”.upper() 小写转大写
msg = "nullptr.cpp"
data = mag.upper()
print(data) # 输出:NULLPTR.CPP
- “xxx”.lower() 大写转小写
msg = "NULLPTR.CPP"
data = msg.lower()
print(data) # 输出:nullptr.cpp
🍉字符串内容替换,得到一个新的字符串
- “xxx”.replace(“x”,“y”)
data = "今天是晴天,但是我不喜欢晴天"
value = data.replace("晴天","雨天")
print(data) # "今天是晴天,但是我不喜欢晴天"
print(value) # "今天是雨天,但是我不喜欢雨天"
🍉字符串切割,得到一个列表
- “xx,yy,zz”.split(‘,’) ------> [“xx”,“yy”,“zz”]
data = "nullptr|root|cpp"
result = data.split('|') # ["nullptr","root","cpp"]
print(data) # "nullptr|root|cpp"
print(result) # 输出 ["nullptr","root","cpp"]
# 根据特定字符切开之后保存在列表中,方便以后的操作
- “xx|yy|zz”.split(‘|’,num)
# 默认是向左边开始切割
data = "nullptr|root|cpp"
result = data.split('|',1) # ["nullptr","root|cpp"]
print(data) # "nullptr|root|cpp"
print(result) # 输出 ["nullptr","root|cpp"]
- 向右边切割 rsplit()
data = "nullptr|root|cpp"
result = data.rsplit('|',1) # ["nullptr|root",cpp"]
print(data) # "nullptr|root|cpp"
print(result) # 输出 ["nullptr|root",cpp"]
🍉 将字符串内容居中、居左、居右展示
- “xxx”.center(num,“str”)
str1 = "你好呀"
# data = str1.center(21, "-")
# print(data) #---------你好呀---------
# data = str.ljust(21, "-")
# print(data) # 你好呀------------------
# data = str.rjust(21, "-")
# print(data) # ------------------你好呀
最后谢谢大家的观看🐳🐳🐳,喜欢的点一个关注!!!