14天通晓Python_进制编码_字符串类型_(三)

你好我是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) # ------------------你好呀

最后谢谢大家的观看🐳🐳🐳,喜欢的点一个关注!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值