Python的入门
一.编程与编程语言
1.什么是编程语言?
是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
2.什么是编程?
编程是编定程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
3.为什么要学编程?
计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。
一套完整的计算机系统包括以下三部分 1.应用程序 2.操作系统 3.计算机硬件 计算机硬件五大组成部分 1.控制器 2.运算器 逻辑运算:判断事物对错 数学运算:加减乘除等数学相关 控制器+运算器 = 中央处理器(cpu) 3.存储器 内存:基于电工作的(电信号只有高低电频 010101010二进制) 优点:存取速度快 缺点:断电数据立刻丢失 外存:(硬盘,u盘,磁带) 优点:永久保存数据 缺点:存取速度较于内存慢 4.输入设备:键盘,鼠标,扫描仪 5.输出设备:显示器,打印机,音响 ps: 输入设备也可以称之为input 输出设备也可以称之为ouput 存储器:io设备 三大核心组件 1.cpu 2.内存 3.硬盘 cpu 1.X86架构 2.32位,64位 cpu是向下兼容的 3.cpu工作方式:先去内存中获取用户指令>>>解析翻译成自己对应的操作>>>执行操作 存储器 寄存器:cou下一个动作即将要用到的容量比较小的数据 高速缓存:存放的是经常需要使用到的容量比较小的数据 内存:是你的存储主力 磁盘: 机械硬盘(靠硬盘的旋转磁头在上面读取数据) 固态硬盘 磁带:造价便宜,多用于服务器数据的备份 操作系统 将复杂丑陋的硬件操作封装成简易快捷的接口 负责协调,管理,调度计算机各个硬件 双击一个软件图标 (告诉操作系统帮你去操作硬件) 1.该软件对应的数据由硬盘读到内存 2.cpu去内存中读取该软件对应的数据 3.给用户的感觉这个软件起来了
二 .编程语言分类
编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 目前通用的编程语言有两种形式:汇编语言和高级语言。
1.机器语言 (优点:计算机能够直接读懂,速度快 缺点:开发效率极低)
由于计算机内部只能接受二进制代码,因此,用二进制代码0和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.高级语言
是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节
例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
1.编译型(类似于谷歌翻译) c
一次翻译之后,就可以拿着翻译之后的结果已多次运行,编译的过程需要用到编译器 优点:执行效率高 缺点:开发效率低
2.解释型(类似于同声传译) python
一行一行的翻译(读一行翻译一行) 解释的过程需要用到解释器 优点:开发效率高 缺点:执行效率低
学习难度 机器语言>>>汇编语言>>>高级语言 执行效率 机器语言>>>汇编语言>>>高级语言 开发效率 高级语言>>>汇编语言>>>机器语言
三.Python
python又称胶水语言,调包侠 注:在IT行业,不要贸然尝试用最新版本的软件!!不要下载python3.7的版本,有一些bug推荐使用python3.5~3.6
两种运行python程序的方式:
1.交互式 优点:输入内容立刻就有对应的返回结果 缺点:无法永久保存数据
2.命令行(文件的形式) 优点:可以永久保存数据 缺点:暂时来看运行该文件有点麻烦
ps:文件后缀名 仅仅是给人看的 你所认为的不同的文件后缀有不同的功能那是程序员自己写的 py文件默认的后缀名就叫.py结尾
1.运行一个py文件需要走的步骤(*****) 1.将python解释器代码从硬盘读到内存(就等价于双击了word图标)
2.将你写好的py文件有硬盘读到内存(就等价于你双击了一个word文档)
3.解释器解释读取py文件中的内容,解释成计算机能够识别的语句 (如果是一个普通文本文件,仅仅只会将文件内容展示到屏幕上给用户查看,不会检测翻译文件内容)
ps:python解释器于普通的文本编辑器前面两步是一毛一样的,仅仅第三步不一样(一个是解释语法,一个是文本展示)
变量
1.什么是变量?
量:衡量/记录事物的状态/特征
变:状态/特征是可以变化的
2.为什么要有变量?
(帮助你记录保存事物的某种状态或特征)
3.变量的定义
变量必须先定义后调用(使用),变量名不要加引号
4.变量的三要素
1.id():返回的是一串数字,这一串数字你可以直接理解为内存地址2.type():返回的是该变量对应的数据的类型3.value:该变量指向的内存当中数据的值
5.小整数池()
>>> 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程序员约定俗成的)