python基础知识入门
目录
(一)程序语言的演变
编程:把人类需求用计算机表达,是人与计算机的对话。
计算机语言:人与计算机通信的语言,是人与计算机课之间传递信息的媒介。
计算机语言的演变过程:机器语言--->汇编语言--->高级语言
语言 | 概念 | 优点 | 缺点 |
---|---|---|---|
机器语言 | 用二进制代码编写的指令的集合,是唯一可以被计算机识别和执行的语言 | 速度快,效率高,占用内存少 | 直观性差,难以纠错。与硬件相关,通用性与移植性较差 |
汇编语言 | 助记符号(来代替一些二进制指令),操作码,地址码 | 直观性相对较强,同时也具有机器语言的优点 | 同机器语言 |
高级语言 | 接近自然语言的语法,脱离了机器的硬件系统 | 易被掌握,可读性强 | 占用内存多,执行需要编译。独立性,共享性及通用性强 |
例如: 操作: 寄存器BX的内容送到AX中
1000100111011000 --->机器指令 |
---|
MOV AX,BX --->汇编指令 |
AX=BX --->高级语言 |
(二)高级语言的运行机制
1.编译型语言(c,c++):编译器将源程序翻译成目标程序(机器码),相当于整文翻译。
编译型语言优点: ①目标程序可以脱离开发程序独立运行 ②编译过程包含程序的优化,编译的机器码运行效率较高。
2.解释型语言(Basic,python):解释器对源程序进行逐行解释和执行,跨过了生成目标程序这一步,相当于同声传译。
解释型语言优点: ① 逐行解释过程中便于对代码进行修改和测试
②可移植性较好,只要有解释环境,就可在不同的操作系统上运行
(三)python语言特点
语法简单:强制缩进,无其他语法细节和规则要求
可移植性:可移植在多种平台上
黏性扩展:胶水语言,具有优秀的可拓展性,有11万余个标准库和第三方库
开源理念:对源代码可以自由的复制,改动,用于新的自由软件中,形成了庞大的python社区
面向对象:既支持面向过程的函数编程(由过程或可重用代码函数构建起来),也支持面向对象的抽象编程(对象构建起来)
(四)Python的两种运行方式
开始---->python3.x---->IDLE python(启动内置解释器 Python 3.x shell)
①命令行方式:交互式的命令解释方式②文件执行方式:建立py程序,Run---->Run Module
(五)语法规则
①注释: #单行注释 ‘’‘多行注释
②模块导入: 模块是一个包含所有定义的函数和变量的文件
import 模块名 #导入整个模块 from 模块名 import 函数名 #导入模块中的一个函数 from 模块名 import 函数名1,函数名2…… #导入模块中的一些函数 from 模块名 import * #导入模块中的所有函数
(六)数据类型
①基本数据类型:数值类型(整形,浮点型,复数型),字符串,布尔……
②复合数据类型:元组,列表,字典,集合
※※※(七)python 中的变量
要区分好Python变量与其他高级语言变量的区别:
①对于其他高级语言变量:变量指向特定的存储空间,存储空间就是连续地一定字节数的内存单元
变量名是对内存单元的引用(因此不用关心数据的存储地址,对变量值的改变就是对存储单元内容的改变,在这个过程中,变量的地址不会改变)
②对于Python变量:赋值语句就是对变量的定义,变量名是对数据的引用(对变量重新赋值时,Python为其重新分配新的内存单元用于存放新值,变量将指向新的地址)
比如下面例子:将变量x=1重新赋值为2时,
#example 1
'''
python变量名是对数据的引用
因此用赋值语句对变量重新赋值时,python为其分配新的内存单元
该变量将指向新的地址
'''
x=1
print("x的内存地址为:",id(x))
x=2
print("x的内存地址为:",id(x))
y=x
print("y的内存地址为:",id(y))
'''
运行结果
x的内存地址为: 1533373456
x的内存地址为: 1533373488
y的内存地址为: 1533373488
'''
正因为Python变量是对数据的引用,故交换两变量的值时不像其他高级语言一样需要借助于第三变量
a,b=b,a #一个语句就完成了
(八)模块的使用
模块是一个包含所有定义的函数和变量的文件,后缀名时py,可以被别的程序引入每个Python文件就是一个模块,文件的名字就是模块的名字当解释器遇到import语句时,会在搜索路径中去查找模块。
>>> import sys #查看系统默认路径
>>> sys.path
也可以像默认路径中增加目录:sys.path.append('要增加的目录路径')
例如,我创建一个maths模块,里面定义了一个函数multi来计算两数之积
maths.py
def multi(a,b):
return a*b
首先确保我的maths.py文件路径在搜索路径下,不在则用append()方法追加进去
之后就可以在命令行或文件中被调用了,就如内置函数一样
import maths
print(maths.multi(3,3)) #输出9
(九)Python程序文件的两种执行方式
首先确保我的maths.py文件路径在搜索路径下,不在则用append()方法追加进去
之后就可以在命令行或文件中被调用了,就如内置函数一样
import maths
print(maths.multi(3,3)) #输出9
module_name模块
def test_module():
if __name__=='__main__':
print("程序独立运行!") #在交互环境下运行
elif __name__=="module_name":
print("程序被作为模块调用!") #作为模块被导入
test_module()
以下是两种执行方式的测试结果:
1.直接运行该程序,出现
=========== RESTART: C:\Users\HOUXUEJING\Desktop\py\module_name.py ===========
程序独立运行!
2.使用import语句导入该模块,出现
>>>import module_name
程序被作为模块调用!