Python学习总结(一)
2010-09-06 02:46 onm 阅读(311) 评论(0) 编辑 收藏 举报最近对Python产生了兴趣,就借了本书学习了一下。看的是《Python学习手册》第三版,这个很适合编程新手学习Python的书,所以里面重复的话比较多。但作为Python新手,我还是学到了很多知识,和很多有意思的事情。
概要
首先说Python的彩蛋,这个很有意思,一首小诗,介绍了Python的设计理念。输入import this命令,在交互模式下会自动列出Python的设计原则,从此就了解了Python的个性。其中比较经典的一个英文缩写“EIBTI”——“明了胜于晦涩”。
摘录一段Wiki上的话:Python([KK] 英语发音: /'paɪθɑn/, [DJ] 英语发音: /ˈpaiθən/),是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高级任务,几乎可以在所有的操作系统中运行。
Python的分支
CPython是默认的Python(从官网下载的就是这个),还有Jython,IronPython分别是Java平台和.NET平台下的实现。
Python运行
Python是动态语言,Python先将源代码转化为字节码,然后字节码在Python虚拟机中运行。
运行这里还涉及一系列的优化,如实时编译,转换为本地代码的转换器,冻结二进制文件等。
Python对象类型
Python核心数据类型:数字(常量),字符串(常量),列表,字典,元组(常量),文件,其它(集合,布尔,None)等。
由于Python是动态语言,所以不需要类型声明,但是变量必须赋初值,否则会出错。
常量拥有不可变性,所以不能修改。Python中存在边界检查,列表的嵌套可实现多维数组。
Python语句和语法
elif,是else if,与类C语言不同的地方。
while循环可以有else,else内是循环正常退出时执行的代码。通过break或其他跳出时,不会执行。
print语句,打印语句。在Python3中被取消,改为函数。
pass空占位符。什么也不干。
for循环也不是C语言中的那样,这个是元素迭代,类似于C#中的foreach。
try except,不是try catch
raise 替代throw
等一些语法细节。
Python if语句不需要加括号,还有Python中没有;(分号),还有强制缩进
代码示例
1 2 3 | If x > y: X = 1 Y = 1 |
(题外话:分号打习惯了,一条语句最后容易不自主的打个分号;,如果Python搞习惯了,会不会以后总忘记打分号呢?)
当然()括号也可以打,不过不建议打,因为没括号更Python,不然就是个外行……我觉得强制缩进这事,对于编程新手挺管用,不然代码都是一坨……
赋值,引用之类的事,和别的语言都差不多,记住什么是不变的常量,什么是变量,什么是引用,什么时候拷贝就行了。了解C#中值类型,和引用类型类推一下就差不多了。
Python中没有++,--这样的自增,自减。
与或非是英文字符(and or not)表示了,不是符号(&& || !)
range,zip,map等
函数
def语句实际上是一个可执行语句:当它运行的时候,它创建并将一个新的函数对象赋值给一个变量名。(Python中的所有语句都是实时运行的,没有像独立的编译时间这样的流程);
由于def是一个语句,所以一个def可以出现在任一语句可以出现的地方。
作用域和参数(一些细节)
Lambda表达式 示例:
1 | f = lambda x, y : x + yf( 2 , 3 , 4 ) |
类似于
1 | def func(x, y,): return x + y |
模块
用于,构建大型应用和更好的组织工程。
模块导入:导入即执行,因为导入的开销较大,所以不允许多次导入。除非调用reload。
语句:Import
类和OOP
构造函数
1 2 3 | Class C1(C2, C3): #注释用#号,括号内的是基类,类继承,支持多重继承 def __init__( self , who): Self.name = who |
异常
与其它语言类似
总结
第一篇只是个概要,不涉及过多细节。
备注:由于所学尚浅,所以可能有部分细节不是特别准确。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述