补充内容:
引用《Python编程实践》中开篇内容:
1.1 程序和编程
程序其实就是一组指令的集合。
每个程序都是用一组基本操作指令写出来的,这些指令都是其读者已经知晓的。
计算机与计算机之间其实没有什么区别,只是它们有着不同的操作指令集而已。有些操作是数学方面的,比如“给某个数字加0,然后再求其平方根”,而有些则可能是关于其它方面的,例如,“从一个名为data.txt的文件中读取一行”,“画一个蓝色的像素点”或者“给这本书的作者发个电子邮件”等。
定义新的操作指令,并将其组合到一起以便能够做一些有意义的事情,这就是编程工作的核心和灵魂。
计算型思维主要包括以下内容:
强调概念化,而非程序化,计算机科学不是计算机编程。像计算机科学家一样思考,不只是说要会编程,还需要能在多个抽象层次上进行思考。
它是人类(而非计算机)的一种思考方式。计算型思维是人类解决问题的一种途径,它并不会试图让人类像计算机那样去思考问题。
Python历史
python是一种简单的、解释型的、交互式的、可移植的、面向对象的计算机程序设计语言,可以在各种领域中编写独立的脚本和程序,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年
编程语言特点:
用户:提出问题(问题空间)
计算机:解决问题(解空间)
把解空间的问题进一步抽象出来,以近于人类的思维,
编程语言发展阶段:
机器语言->微码编程->高级语言
解释器:逐条解析运行
编译器:整体解析运行
相对于C/C++,python性能在差一点
Python程序的执行过程:
源程序(.py文件)->编译->字节码(.pyc文件)->解释器->在处理器上一一执行
python解释器:
Cpython 原始、标准的实现方式
Jython 用于与java语言集成的实现
IronPython 用于与.net框架集成的实现
Python性能优化工具:
Psyco
Python 语言的一个扩展模块,可以即时对程序代码进行专业的算法优化
Pypy
Pypy是Psyco的后继项目,是用Python实现的Python解释器,自我实现,是一种动态编译器
Shed Skin
Python编译器,将pthon代码转换成优化的C++代码
启动Python:
1.交互式解释器,在Liunx中直接启动Python
2.IDE开发工具
python程序文件
1.Python文件中包含 一系列预编写好的语然的程序文件称作“模块"
2.能够直接运行的模块文件通常称作脚本(即程序的顶层文件)
作为程序入口的只有顶层文件
#!usr/bin/env python 执行脚本时通知内容要启动的解释器
import platform 导入一个python模块platform
python程序可以分解成模块、语句、表达式和对象
程序由模块构成
模块包含语句
语句包含表达式
表达式建立并处理对象
表达式是”某事“,语句是”做某事“
面向过程:
以指令为中心,由指令处理数据
如何组织代码解决问题
面向对象:
以数据为中心,所有的处理代码都围绕数据展开
如何设计数据结构组织数据,并提供对此类数据所允许处理操作
数据结构
通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至 可以是其它数据结构
Python的最基本数据结构 是序列
Python的关键要素
1.基本数据类型
2.对象引用
3.组合数据类型
4.逻辑操作符
5.控制流语句
6.算术操作符
7.输入/输出
8.函数的创建与调用
一、基本数据类型
关键点:
1. Python将所有数据存为对象,在Python中,变量事实上是指向内存对象的引用
2.在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)
3.变量名没有类型,对象才有
4._表示最新一个表达式的值:
5.列表和元组并不真正存放数据,而是存放对象的引用
1).整型:不可变类型
整型变量不可修改的意思是修改之后对象内存地址会发生变化:如图:
2).浮点型
3).布尔型
True,False
二、组合数据类型:
1).列表:可变对象(内部引用发生了改变,但对象本身地址不变)
如:list = ["This","is","a","Test"]
2).元组:不可变序列
如:list = ("This","is","a","Test")
3).集合
4).字典
5).字符串:不可变类型
字符串是一组特定的序列,可以通过索引、下标进行引用
二、对象引用
python将所有数据存为内存对象
变量事实上是指向内存中的引用,所以变量和对象事实上是分开的
在python中,变量名也是一个对象,也需要在内存中存放,如name = "hello”,实际上在内存中会生成两个内存对象,一个是name变量名的内存对象,一个是“hello”的数据对象,name实际是一个指针,指向“Hello"的起始地址位置
动态类型:在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)
内建函数type()用于返回给定数据项的数据类型
”="用于将变量名与内存中的某对象绑定:如果对象事先存在,就直接进行绑定:否则,由“=”创建引用对象
变量命名规则:
1.只能包含字母、数字和下划线,且不能以数字开头
2.区分大小写
3.禁止使用保留字
注意:变量名类型,对象才有
三、组合数据类型
数据结构:通过某种方式组织在一起的数据元素的集合
常用的组合数据类型
序列类型
列表
元组(不可修改)
字符串
集合类型
集合
映射类型
字典
注:列表是可变序列,元组是不可变序列
组合数据类型也是对象,因此其可以嵌套
实质上,列表和元组并不真正存储数据,而是存放对象引用
对象可以具有其可以被调用的特定方法(函数)
元组、列表以及字符串等数据类型是“有大小的”,可以使用内置函数len()获取大小数据信息
四、逻辑操作符
身份操作符
is操作符:判断对象身份是否一致,是否引用同一对象
比较操作符:>、<、=、>=、<=
五:控制流语句
常见控制流语句
if
while
for...in
try
六、算术操作符
增强赋值操作符 += -=等
同样的功能,使用增强型赋值操作符性能比较好
七:输入/输出
input/print
注意一点的是:
当显示字典中的元素时,输出格式如下:
八、函数的创建与使用
函数是实现模块化编程的基本组件
Python使用Def用于标识函数
所有的可调用函数对象它的内部必然有一个__call__判断是否可调用
def语句会创建一个函数对象,并同时创建一个指向函数的对象引用
函数也是一个对象,可以存储在组合数据类型中,也可以作为参数传递给其它函数
callable()可用于测试函数是否可调用