- 编程语言的发展史
1.机器语言(直接用二进制跟计算机直接沟通交流,直接操作硬件)
优点:计算机能够直接读懂,速度快
缺点:开发效率极低
ps:站在奴隶的角度说奴隶能够听懂的话
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
2.汇编语言(用简单的英文标签来表示二进制数,直接操作硬件)
打印一句hello world需要些以下代码
hello.asm
section .data ; 数据段声明
msg db "Hello, world!", 0xA ; 要输出的字符串
len equ $ - msg ; 字串长度
section .text ; 代码段声明
global _start ; 指定入口函数
_start: ; 在屏幕上显示一个字符串
mov edx, len ; 参数三:字符串长度
mov ecx, msg ; 参数二:要显示的字符串
mov ebx, 1 ; 参数一:文件描述符(stdout)
mov eax, 4 ; 系统调用号(sys_write)
int 0x80 ; 调用内核功能
; 退出程序
mov ebx, 0 ; 参数一:退出代码
mov eax, 1 ; 系统调用号(sys_exit)
int 0x80 ; 调用内核功能
缺点:执行效率较机器语言
3.高级语言(站在奴隶主的角度,说奴隶主的话)
php,c,c++,java,c#,python,go
高级语言分类:
1.编译型(类似于谷歌翻译) c
一次翻译之后,就可以拿着翻译之后的结果已多次运行
编译的过程需要用到编译器
优点:执行效率高
缺点:开发效率低
2.解释型(类似于同声传译) python
一行一行的翻译(读一行翻译一行)
解释的过程需要用到解释器
优点:开发效率高
缺点:执行效率低
学习难度
机器语言>>>汇编语言>>>高级语言
执行效率
机器语言>>>汇编语言>>>高级语言
开发效率
高级语言>>>汇编语言>>>机器语言
python为 解释型 高级编程语言
python
1.胶水语言(在哪里都可以用)
2.调包侠(网上有很多现成的功能代码,可以直接调用,稍作修改)
前期准备:
python解释器安装,环境变量配置,多版本共存
注意;
在IT行业,不要贸然尝试用最新版本的软件!!!!!!!!!!!!!!
python解释器版本问题
python2.X版本
python3.X版本
主要学3版本,会对比着2,3之间的不同均会设计
不要下载python3.7的版本,有一些bug
推荐使用python3.5~3.6
windows下命令行:
windows+r弹出小框,框内输入cmd
python解释器下载:python.org----download----选择操作系统版本,解释器版本
环境变量
系统查找文件的所有路径配置。查找顺序为自上而下依次查找
如果是window7系统,需要用分号将路径分开:
D:\Python27;C:a/v/v;D:t/y/u/;F:a/a/a;
多版本共存
不要直接该原本的python.exe文件
拷贝一份再起别名
如果是mac系统
- vim /etc/profile
- 输入a,i,o均可
- PATH = /user/local/python36:$PATH
Export PATH
- 按esc后输入wq即可
建议在安装的时候直接勾选
python基本概念:
第一个python程序
两种运行python程序的方式
1.交互式
优点:输入内容立刻就有对应的返回结果
缺点:无法永久保存数据
2.命令行(文件的形式)
优点:可以永久保存数据
缺点:暂时来看运行该文件有点麻烦
ps:文件后缀名
仅仅是给人看的
你所认为的不同的文件后缀有不同的功能那是程序员自己写的
py文件默认的后缀名就叫.py结尾
运行一个py文件需要走的步骤(*****)
1.将python解释器代码从硬盘读到内存(就等价于双击了word图标)
2.将你写好的py文件有硬盘读到内存(就等价于你双击了一个word文档)
3.解释器解释读取py文件中的内容,解释成计算机能够识别的语句
(如果是一个普通文本文件,仅仅只会将文件内容展示到屏幕上给用户查看,不会检测翻译文件内容)
ps:python解释器于普通的文本编辑器前面两步是一毛一样的,仅仅第三步不一样(一个是解释语法,一个是文本展示)
IDE开发编辑器
pycharm仅仅是一个方便我们开发python程序的工具而已
变量
1.什么是变量?
量:衡量/记录事物的状态/特征
变:状态/特征是可以变化的
2.为什么要有变量?
帮助你记录保存事物的某种状态或特征
3.变量的定义
变量必须先定义后调用(使用),变量名不要加引号
4.变量的三要素
1.id():返回的是一串数字,这一串数字你可以直接理解为内存地址
2.type():返回的是该变量对应的数据的类型
3.value:该变量指向的内存当中数据的值
5.小整数池():当变量的值小于等于256时,变量值相同,则变量指向同一内存地址,不在多占用内存地址
当变量的值大于256时,即使变量值相同,不同变量指向不同内存地址,每个变量的变量值会有不同的内存地址,存多份
pycharm无法实现变量值大于256时,内存地址不同的实验,需要在CMD下执行验证
>>> a = 257
>>> b = 257
>>> id(a)
2919979319120
>>> id(b)
2919979576208
>>> c = 256
>>> d = 256
>>> id(c)
1642892736
>>> id(d)
1642892736
注释是代码之母
垃圾回收机制
1.引用计数:内存中的数据如果没有任何的变量名与其有绑定关系,那么会被自动回收
2.标记清除:当内存快要被某个应用程序占满的时候,会自动触发
3.分代回收:根据值得存活时间的不同,划为不同的等级,等级越高垃圾回收机制扫描的频率越低
常量(不可变的量)
python里面压根没有常量
通常将全大写的变量名看作常量(python程序员约定俗成的)