Python学习笔记
前言:又从仓库翻出来了一些以前总结的文档,以下内容是我初学Python时网上找的或是图书馆借书抄写的笔记,现在再看有点零散不成体系,但是也还是纪念一下子吧。
Python学习笔记
对于初学编程的人来说,Python可以缩短编程语言的时间和降低学习编程的难度。
1.Python的基本常识
字典:用dict创建,用大括号表示的,python中唯一的映射结构就是字典对象。键必须不可变,只能由数、字符串和元组充当,不能用列表。
序列:包括字符串、列表和元组
字符串:用str创建,不可变对象类型。单引号和双引号都可以创建。
列表:用list创建,使用矩阵[]表示,相当于matlab里面的矩阵,列表中的数据前包含后不包含;不同于矩阵的一点是:列表的项不需要具有相同的类型,访问列表的索引操作要用矩阵[]。列表嵌套可以构建矩阵,[[]],行号以及列标的位置都是从0开始的。
元组:用tuple创建元组,使用小括号()表示,元组中的数据不可以被改变,相当于matlab里面的元胞数组,主要功能是存储数据,元组相当于只读列表。元组可以在字典中被用作“键”,但是列表不行。元组中的元素值是不允许删除的,但是可以使用del删除整个元组。不能将元组的值赋给其他的变量。
集合:用set创建,用大括号{}表示。集合里面的元素是不重复的数。集合中的元素是无序排列的,所以集合不能通过数字进行索引。集合不能嵌套集合。
注释使用符号:单行使用#,多行注释使用三个单引号
Zip函数相当于合并两个矩阵
定义函数:matlab中使用funcion,python中使用def
Python中存在各种各样的数据库可以直接调用用于数据处理,调用各个数据库中的函数用于程序编写。Python编程的特点是可以一边编辑一边执行语句,可以记录每一步程序的输出结果,而不像matlab一样需要完整的程序代码才能得到最后的结果。
序列对象:字符串和元组,不能修改指定索引位置的值
Python的交互环境(shell)相当于matlab的命令行窗口,在交互环境下编码有利于检验每一段代码的正确性,因为能够及时观察到输出结果。
2.函数
Lambda被称为匿名函数,是一种以表达式形式生成函数的方法。def常用来设计功能复杂的一般性函数,而Lambda用于简单的函数,以适应更灵活的应用,也被称为函数功能速写。Lambda定义的函数没有函数名,生成的是一个表达式形式的无名函数,表达式的结果是Lambda的返回值。Lambda函数可以赋值给一个变量,或者作为列表常量,还可以作为参数的形式出现在一般函数调用中。Lambda还经常与map、filter和reduce等内置函数联合使用。
3.模块(module)
Python程序的顶层结构是模块。模块是程序组织的高级单位,用于实现数据和代码的封装。一个Python文件就可以视作一个模块,模块提供了将独立文件连接构建更大和更复杂程序的架构及方式。这种模块化的架构提高了代码的重用性,方便实现数据共享。
要获得对一个模块中变量、方法(函数)的访问权,第一步是导入模块。在一个模块中导入其他模块的语句有mport和from两条。
创建模块文件等同于编辑一个python程序。程序的设计目的是运行,而模块的设计目的是由其他程序导入并使用。
4.包
模块的集合:包。包是一个目录,其中包含一组模块和一个_int_.py文件(记录该目录中的所有.py文件)。
Python作为一个开源软件,除了标准库外,网上还有很多第三方模块包。例如,在科学和工程计算方面,第三方包NumPy提供了高效的n维数组,基本的线性代数函数和傅里叶变换函数等;SciPy包提供了用于统计学计算,信号与图像处理,遗传算法等领域运算的函数和工具。这两个包都可以从www.scipy.org处获取。此外,如wxPython—Python语言的一种优秀的GUI图形库。
5.类
面向对象程序设计(OPP)的基本思想是将一组对象的公共属性和方法封装为类。类是包括函数和变量相互作用的一个整体。
类名的首字母一般要大写。类方法包括了特殊的self参数,是对实例自身的引言。Python支持3种方法,即实例方法、类方法和静态方法。实例方法属于给定类的实例,通过实例或self调用;类方法需要将类本身作为操作对象才能调用;静态方法相当于类中的一个普通函数,也只能通过类来调用。
一个好的封装应该尽量让实例内部的属性不被外部访问。如果希望实例属性不被外部访问,可以把属性的名称前面加上两个下划线_ 。在Python中,实例的变量名如果以 _开头,就变成了一个私有变量(private),只有内部成员可以访问,外部不能访问。
Python以类的方式管理数据。
6.数据结构与算法
程序设计包括以下几个部分:(1)问题分析;(2)算法设计;(3)程序编写;(4)对源程序进行编辑、编译和连接;(5)运行程序,分析结果;(6)文档编写。
著名计算机科学家沃思提出一个公式:程序=数据结构+算法。其中,算法解决“如何操作数据”的问题。数据结构解决“如何描述数据”的问题,指定数据的类型和数据的组织形式。数据结构在计算机学科中具有核心地位。
算法是通过对一定规范的输入进行处理,在有限时间内获得所要求的输出的整个过程。算法与具体的程序语音无关。
Python语言的学习大致分为以下两个方面:
(1)Python语言本身的语法以及编程环境的掌握;
(2)算法的学习。
面向过程(OP):按照事件发展过程进行,把解决问题的步骤列出,然后一步步执行。
面向对象(OO):把与问题相关的数据提取出来,将具有相同属性的事物抽象为“类”,设计出“类”的方法,程序执行时,将“类”实例化为“对象”,调用“类”的方法解决问题。
SQL:结构化查询语言,是操作数据库的工业标准语言,作为通用的、专门操作数据库的语言,SQL可以确切指定想要检索的记录以及按什么顺序检索。
MySQL:是当今最流行的关系型数据库管理系统,作为开源软件,MySQL体积小,采用关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,具有较快的存取速度和较高的灵活性。
计算思维:运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
程序设计:给出解决待定问题程序的过程,是设计、编制、调试程序的方法和过程。程序设计通常分为问题分析、算法设计、程序编写、程序运行、结果分析和文档编写等阶段。
算法效率的三种分析方法:(1)最坏的情况。(2)最好情况。(3)平均情况。
在面向对象的方法中,类是一组具有共同特性的所有对象成员的抽象描述。
6.1算法
算法的核心是创建问题抽象的模型和明确求解目标,之后可以根据具体问题选择不同的模式和方法完成算法的设计。
计算机算法是程序的灵魂。先有算法,再有程序。当一个算法使用计算机程序语言描述时就是程序。
三种基本控制机构:顺序、选择和重复
算法是编程的核心,就像一台计算机的CPU,算法的好坏决定了一个系统的效率高低。