news 2026/8/16 9:23:06

python学习第七周

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python学习第七周

argparse

更方便的获取命令行参数,,是sys.args的封装:

importargparsedefmain():parser=argparse.ArgumentParser(prog="程序名字",description="mysql database描述",epilog="说明信息copyright 2026")parser.add_argument("--host",default="localhost")parser.add_argument("--port",default=3306,type=int)parser.add_argument("-u","--user",required=True)parser.add_argument("-p","--password",required=True)args=parser.parse_args()print("parse args")print(f"host:{args.host}")print(f"port:{args.port}")print(f"user:{args.user}")if__name__=='__main__':main()

测试:
python 2.py --user waterkid --password 123
python .\2.py -h: -h查看帮助

Base64

Base64: 将二进制数据转换成文本格式,,将这些二进制数据映射为A-Z,a-z,0-9,+,/这64个可打印字符,,

3个字节3*8 = 24bit, 划分成4组,,每一组6bit,然后得到这4个数字作为索引,然后查表(2的6次方=64,也就是对应的64个字符),获得相应的4个字符,,就是编码后的字符串

  • 如果二进制数据不是3的倍数,,最后会剩下一两个字节,,,Base64用\x00字节在末尾补足后,,再在编码的末尾加上1个或者2个=号,表示补了多少个字节,,解码的时候,会自动去掉
  • 标准的Base64编码后可能会出现+或者/,在url中不能直接作为参数,,所以又有一种url safe的base64编码,其实就是把+/分别变成-_
  • 编码后数据体积会比原始数据大1/3 ,,因为3个字节的二进制数据,会被编码成4个字符,,
a=base64.b64encode(b"hello")print(a)b=base64.b64decode("aGVsbG8=")print(b)# 将二进制变成字符串print(b.decode(encoding="utf-8"))

struct

struct: 精准控制二进制的格式,字节序,字节长度,,适配C/硬件/网络协议的二进制规则
b"hello" : 字符类二进制,,但如果传输的不是字符串,,比如数字,浮点数,,直接转bytes就会出现问题,,因为数字不能当成字符来序列化,

importstruct a=str(12345).encode("utf-8")print(a)right_bytes=struct.pack("i",12345)print(right_bytes)num=struct.unpack("i",right_bytes)print(num)# ?q是格式符 :?表示占用1字节是bool类型,, q表示是长int类型,占用8字节packed=struct.pack("?q",True,1234567890123)print(packed)s=struct.unpack("?q",packed)print(s)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/11 11:18:46

【开题答辩全过程】以 某县农村留守儿童爱心帮扶平台为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华
网站建设 2026/8/9 15:27:03

[Android] vFlow v1.4.0 可视化工作流自动化工具

[Android] vFlow v1.4.0 可视化工作流自动化工具 链接:https://pan.xunlei.com/s/VOjjR7O4Q_YOy8rd8tdQB1EtA1?pwdmfgj# vFlow 是一款为 Android 平台设计的、强大且高度可扩展的自动化工具。它允许你通过图形化界面,将一系列“动作模块”自由组合成强…

作者头像 李华
网站建设 2026/8/7 17:51:59

JBoltAI框架:模型队列服务助力Java企业级AI开发

在Java企业级AI应用开发中,如何高效处理大量AI请求并合理分配计算资源,是开发者面临的关键挑战。JBoltAI框架的模型队列服务(MQS)通过请求排队和多模型负载均衡机制,为这一难题提供了稳健的解决方案。 请求排队&#…

作者头像 李华
网站建设 2026/8/7 10:17:10

Web学习之网络通信

一、网络通信 互联网中主机和主机连接必须遵守待定的要求,这个要求成为协议OSI(Open System Interconnection)开放式系统互联,定义了计算机互联时网络通信的7层目前大规模使用的是TCP/IP协议 应用层 合并OSI中5,6&…

作者头像 李华
网站建设 2026/8/12 21:19:14

【软件测试】1_性能测试实战 _商城项目介绍

文章目录 一、轻商城项目介绍1.1 背景1.2 技术介绍 二、 项目功能架构三、 项目技术架构四、熟悉数据库设计4.1 查看表与表 之间的关联关系4.1.1 法一:用navicate 查看 设计表4.1.2 法二:用show create table 表名;sql语句 查看 表设计信息 4…

作者头像 李华