Python打包教程03:PyInstaller命令使用指南教你使用Pyinstaller将Python源码打包成可执行程序exe的方法
Python入门教程47:使用virtualenv虚拟环境打包成exe程序
以下是 PyInstaller 命令大全解析,涵盖常用参数、高级配置及使用场景,帮助您快速掌握如何将 Python 脚本打包为独立可执行文件。
一、基本命令格式
1pyinstaller [选项] 脚本路径.py
二、常用选项解析1. 打包模式
选项
说明
示例
--onefile
打包成单个可执行文件
pyinstaller --onefile app.py
--onedir
打包成目录结构(默认模式)
pyinstaller --onedir app.py
--windowed / -w
隐藏控制台窗口(适合 GUI 程序)
pyinstaller -w app.py
--noconsole
同 --windowed(Windows 专用)
pyinstaller --noconsole app.py
2. 输出配置
选项
说明 ...
Python教程04—什么是元组Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
Python 元组1. 元组1234567891011121314151617181920212223# 元组创建后,元素不能改变,删除,也不能添加。元素的访问、切片、遍历与列表一致T = (1,2,3,4,5)print(T)print(type(T))T1 = (1)print(T1)print(type(T1)) # 必须要在1后面加个逗号 否则是个整型T2 = (1,2,3,4,5,6,'qi')for i in T2: print(i)print(T2[1:3])print(T2[1:6:2])T3 = 'qi' in T2print(T3)stu = s_id,s_name = (102,'张三') # 打包print(stu)print(s_id) # 解包print(s_name) # 解包
Python教程06—什么是集合集合是一种可迭代的,无序的,不能包含重复元素的容器
集合的创建、修改、查询基础语法1. 创建集合123s2 = {"hello"}print(s2)print(type(s2))
2. 修改集合1234s = {"angel","Angel","andy","Andy"}s.remove("angel")s.add("安吉拉")print(s)
2.1 可变集合操作方法
方法
描述
add()
为集合添加元素
clear()
移除集合中的所有元素
copy()
拷贝一个集合
difference()
返回多个集合的差集
difference_update()
移除集合中的元素,该元素在指定的集合也存在
discard()
删除集合中指定的元素
intersection()
返回集合的交集
intersection_update()
返回 ...
Python生成器与迭代器深度解析:内存高效的数据流处理编程模式迭代器其实就像是一个智能的书签。你不需要把整本书都记在脑子里 只要知道当前读到哪一页就行了。
每次调用next()方法 就翻到下一页。简单粗暴。
1234567891011121314151617# 自定义迭代器实现class NumberIterator: def __init__(self, max_num): self.max_num = max_num self.current =0 def __iter__(self): return self def __next__(self): if self.current <self.max_num: self.current +=1 return self.current else: raise StopIteration# 使用方式numbers =NumberIterator(5)for num in numbers: pri ...
Python新手必读:7大实用调试技巧,助你快速定位并解决代码难题1、打印语句与日志记录
大多数新手调试时的第一反应,就是在代码里加 print () 语句来观察程序状态。比如在循环中打印变量值,或设置 “检查点” 信息,都能快速发现数值异常。但初学者常犯的错误是:要么忘记清理这些打印语句,要么打印信息缺少上下文 —— 比如直接 print (x) 就会让人摸不着头脑。
改进方法很简单:添加上下文描述,比如 print (f”循环第 {i} 次,x 的值是 {x}”)。
如果想更专业,可以用 logging 模块替代 print:
123import logginglogging.basicConfig(level=logging.DEBUG)logging.debug("变量状态: %s", var)
这样既能获得时间戳和日志级别,又能轻松开关日志或重定向到文件。
简言之,print () 适合快速排查(能解决 80% 的新手问题),但要学会在正式场景中使用日志。很多时候,新手浪费时间就是因为看不到程序状态变化 —— 合适的打印或日志能让程序流程一目了然。
...
Python方法(self参数理解)🎯学习目标深入理解Python方法中self参数的作用和意义,掌握实例方法、类方法和静态方法的区别,学会正确使用不同类型的方法。
📖核心知识点self参数的本质
12345678910class Person: def __init__(self, name): self.name = name # 实例方法:第一个参数必须是self,表示对象本身 def introduce(self): return f"我叫{self.name}" # 实际上Python是这样调用的: # person.introduce() 等价于 Person.introduce(person)
三种方法类型对比
1234567891011121314151617181920212223class Calculator: # 类属性 PI = 3.14159 def __init__(self, brand): self.brand = b ...
编程开发
未读《Python知识手册》
手册介绍:https://mp.weixin.qq.com/s/Nf8xcITRaBcWEattAII-iA
手册Github地址:https://github.com/liyangbit/Python-Knowledge-Handbook
pdf下载链接链接:https://pan.baidu.com/s/1ANXDD1hLZ5h_6jMrDMEQzg密码:5r0a
备用链接:https://shimo.im/docs/rYYT6Dd86TqdYXXR/
Python自学笔记第28篇–异常1在Python中,我们要捕获异常,来确保程序的正常运行。
什么是异常,异常是错误吗?
第一个知识点:异常和错误傻傻分不清楚
1:什么是错误
首先说下错误,错误一般是指语法错误,也就是书写代码的时候,没有按照Python的语法规则进行书写导致的程序错误。
例如:
if a==1
print(‘这就是语法错误’)
因为Python要求if的结束要以冒号‘:’结尾,你没有在条件语句a==1后面加‘:’的话,Python就看不懂你写的什么东西,于是就会报错。
这样的错误,我们称为语法错误(Syntax Error),报错的时候见到Syntax Error,你就检查一下你的代码是不是语法格式出错了,导致Python认识不了了。
错误一般是你粗心或者对Python语法格式不太熟练的情况下导致的,说白了就是你编写代码的时候写不对导致的,再通俗点就是不会写导致的。错误是可避免的,多练就对了。
2:什么是异常
异常不是语法的错误,一般情况下语法格式没有问题,但是运行过程中出现了意外情况。当然这些意外情况一般是可以预见的。 ...
编程开发
未读Python自学顺序Python自学顺序,千万莫本末倒置了!
Python自学顺序,千万不能弄反了,否则事倍功半,收获甚微。下面我们来看看正确的顺序是怎么样呢?
第一步:工具安装,环境搭建;
第二步:基础语法,磨炼功底;
第三步:高级编程,雷打基础;
第四步:web框架,样样精通;
Web 应用程序的顶级Python 框架:Reflex、Django、Flask、Gradio、Streamlit、Dash、FastAPI
第五步:网络爬虫,神奇有趣;
网络爬虫的11个高效的Python网络爬虫工具,包括Requests、BeautifulSoup、Scrapy、Selenium、PyQuery、Lxml、Pandas、Pyppeteer、aiohttp、Faker和ProxyPool。
1、Requests 是一个非常流行的HTTP库,用于发送HTTP请求。它简单易用,功能强大,是爬虫开发中不可或缺的工具。
2、BeautifulSoup 是一个用于解析HTML和XML文档的库,非常适合提取网页中的数据。
3、Scrapy 是一个非常强大的爬虫框架,适用于大规模的数据抓取任务。它提供了 ...
Python 程序员必修课:为什么说 *args 和 **kwargs 是“万能接口”?你有没有遇到过这种场景:写了一个函数,参数死板得像石头,非得按照顺序一个个传。如果临时想多加几个参数,立马报错。于是你只能不停改函数定义,改着改着自己都乱了。
其实 Python 早就给了我们一个神器,专门解决这种“参数不确定”的尴尬场景——那就是 *args 和 **kwargs。别被这两个名字吓到,它们的本质其实就是两个袋子:
一个袋子专门装位置参数(*args → 元组);
另一个袋子专门装关键字参数(**kwargs → 字典)。
只要学会用这两个袋子,你的函数立刻灵活到飞起。
1. 最直观的感受:把参数全都装起来我们先看个最常见的例子:
123456def demo_args(a, b, *args, **kwargs): print(f"标准参数: {a}, {b}") print(f"位置参数 (*args): {args} (类型: {type(args)} ...
