Python代码运行方式
python3 ~/PycharmProjects/day03/6.test.py
python3
进制
v1 = bin(25)
print(v1)
v2 = oct(23)
print(v2)
v3 = hex(28)
print(v3)
python相关编码
"""
@Author: yinwu
@Time: 2021年07月27日 16:33
@FileName: 编码转换.py
"""
name = "腾讯科技"
data = name.encode("utf-8")
file_object = open("log.txt",mode="wb")
file_object.write(data)
file_object.close()
编码汇总
-
计算机上所有的东西最终都会转换成为二进制再去运行。 -
ascii编码、unicode字符集、utf-8编码本质上都是字符与二进制的关系。
- ascii,字符和二进制的对照表。
- unicode,字符和二进制(码位)的对照表。
- utf-8,对unicode字符集的码位进行压缩处理,间接也维护了字符和二进制的对照表。
-
ucs2和ucs4指的是使用多少个字节来表示unicode字符集的码位。 -
目前最广泛的编码为:utf-8,他可以表示所有的字符且存储或网络传输也不会浪费资源(对码位进行压缩了)。 -
二进制、八进制、十进制、十六进制其实就是进位的时机不同。 -
基于Python实现二进制、八进制、十进制、十六进制之间的转换。 -
一个字节8位 -
计算机中常见单位b/B/KB/M/G的关系。 -
汉字,用gbk编码需要用2个字节;用utf-8编码需要用3个字节。 -
基于Python实现将字符串转换为字节(utf-8编码)
"""
@Author: yinwu
@Time: 2021年07月27日 16:42
@FileName: 编码练习.py
"""
name = "腾讯"
print(name)
data = name.encode("utf-8")
print(data)
old = data.decode("utf-8")
print(old)
- 基于Python实现将字符串转换为字节(gbk编码)
"""
@Author: yinwu
@Time: 2021年07月27日 16:42
@FileName: 编码练习.py
"""
name = "腾讯"
print(name)
data = name.encode("gbk")
print(data)
old = data.decode("gbk")
print(old)
数据类型
- int,整数类型(整型)
- bool,布尔类型
- str,字符串类型
- list,列表类型
- tuple,元组类型
- dict,字典类型
- set,集合类型
- float,浮点类型(浮点型)
整型
v1 = 5
print(bin(v1))
result1 = v1.bit_length()
print(result1)
v2 = 10
print(bin(10))
result2 = v2.bit_length()
print(result2)
在项目开发中经常会出现一些 "字符串" 和 布尔值 转换为 整型的情况
n1 = int(True)
n2 = int(False)
v1 = int("186",base=10)
v2 = int("0b1001",base=2)
v3 = int("0o144",base=8)
v4 = int("0x59",base=16)
v1 = int(8.7)
布尔类型
在以后的项目开发中,会经常使用其他类型转换为布尔值的情景,此处只要记住一个规律即可
【整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False】
【其他均为True】
如果在 `if` 、`while` 条件后面写一个值当做条件时,他会默认转换为布尔类型,然后再做条件判断
if 0:
print("太六了")
else:
print(999)
字符串类型
1、判断字符串是否以 XX 开头?得到一个布尔值
v1 = "腾讯科技,优图实验室"
result = v1.startswith("腾讯科")
print(result)
v1 = input("请输入住址:")
if v1.startswith("北京市"):
print("北京人口")
else:
print("非北京人口")
2、判断字符串是否以 XX 结尾?得到一个布尔值
v1 = "腾讯科技,优图实验室"
result = v1.endswith("实验室")
print(result)
address = input("请输入地址:")
if address.endswith('村'):
print("农业户口")
else:
print("非农户口")
3、判断字符串是否为十进制数?得到一个布尔值
v1 = "991540698"
result = v1.isdecimal()
print(result)
v1 = input("请输入第一个值:")
v2 = input("请输入第二个值:")
if v1.isdecimal() and v2.isdecimal():
data = int(v1) + int(v2)
print(data)
else:
print("请正确输入数字!")
4、去除字符串两边的 空格、换行符、制表符,得到一个新字符串
msg = " H e ll o啊,树哥 "
data = msg.strip()
print(data)
msg = " H e ll o啊,树哥 "
data = msg.lstrip()
print(data)
msg = " H e ll o啊,树哥 "
data = msg.rstrip()
print(data)
补充:去除 空格、换行符、制表符
code = input("请输入4位验证码:")
data = code.strip()
if data == "FB87":
print('验证码正确')
else:
print("验证码错误")
5、字符串变大写,得到一个新字符串
msg = "my name is oliver queen"
data = msg.upper()
print(msg)
print(data)
code = input("请输入4位验证码:")
value = code.upper()
data = value.strip()
if data == "FB88":
print('验证码正确')
else:
print("验证码错误")
"""
code的值"fb88 "
value的值"FB88 "
data的值"FB88"
"""
6、字符串内容替换,得到一个新的字符串
video_file_name = "腾讯科技.mp4"
new_file_name = video_file_name.replace("mp4","avi")
final_file_name = new_file_name.replace("科技","创新")
print(video_file_name)
print(new_file_name)
print(final_file_name)
char_list = ["云原生", "大数据", "云计算", "人工智能"]
content = input("请输入评论信息:")
for item in char_list:
content = content.replace(item,"大圣")
print(content)
7、字符串切割,得到一个列表
data = "腾讯科技|root|991540698@qq.com"
result = data.split('|')
print(data)
print(result)
info = "腾讯,root"
user_list = info.split(',')
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == user_list[0] and pwd == user_list[1]:
print("系统登录成功")
else:
print("用户名或密码错误")
file_path = "xxx/xxxx/xx.xx/xxx.mp4"
data_list = file_path.rsplit(".",1)
data_list[0]
data_list[1]
8、字符串转换为字节类型
data = "腾讯"
v1 = data.encode("utf-8")
v2 = data.encode("gbk")
print(v1)
print(v2)
s1 = v1.decode("utf-8")
s2 = v2.decode("gbk")
print(s1)
print(s2)
9、将字符串内容居中、居左、居右展示
v1 = "王老汉"
data = v1.center(21, "-")
print(data)
data = v1.ljust(21, "-")
print(data)
data = v1.rjust(21, "-")
print(data)
10、帮助你填充0
data = "101"
v1 = data.zfill(8)
print(v1)
字符串实践练习
"""
data = input("请输入内容:")
if data.startswith("al"):
print("是的")
else:
print("不是的")
"""
"""
data = input("请输入内容:")
if data.endswith("al"):
print("是的")
else:
print("不是的")
"""
"""
name = "alex"
result = name.replace("l",'p')
print(result)
"""
"""
data = input("请输入内容:")
if data.isdecimal():
data = int(data)
print(data)
else:
print("请输入数字")
"""
"""
data = input("请输入内容:")
num_list = data.split("+", 1) # ["5","9"]
if num_list[0].isdecimal() and num_list[1].isdecimal():
print("都是整数")
else:
print("不全是整数")
"""
"""
data = input("请输入内容:")
num_list = data.split("+", 1) # ["5","9"]
if num_list[0].isdecimal() and num_list[1].isdecimal():
v1 = int(num_list[0])
v2 = int(num_list[1])
result = v1 + v2
print(result)
else:
print("用户输入有问题")
"""
"""
data = input("请输入内容:")
num_list = data.split("+", 1) # ["5","9"]
v1 = int(num_list[0].strip()) # "5" "5 " " 5 "
v2 = int(num_list[1].strip())
result = v1 + v2
print(result)
"""
"""
import random
code = random.randrange(1000, 9999) # 生成动态验证码,整型
code = str(code) # 字符串类型
msg = "欢迎登录Python系统,您的验证码为:{},手机号为:{}".format(code, "15131266666")
phone = input("请输入手机号:")
data = input("请输入验证码:") # 字符串类型
if code.upper() == data.upper() and phone == "15131266666":
print("登录成功")
else:
print("登录失败")
"""
"""
data_list = []
while True:
hobby = input("请输入你的爱好: (Q/q退出):")
if hobby.upper() == 'Q':
break
data_list.append(hobby)
result = "、".join(data_list)
# print("你的爱好为:"+result)
print("你的爱好为:%s" %result)
"""
|