Python历史1989年,一个无聊的圣诞夜晚,荷兰人Guido写了Python,以他喜欢的喜剧名《Monty Python's flying Circus》命名 Python版本 编程基础程序:一组能够让计算机识别和执行的程序 电子计算机:能够执行程序的机器 计算机发展的两大人物:
冯诺依曼体系架构 计算机应该由五大部件组成: CPU:由运算器和控制器组成 运算器:完成各种算数运算,逻辑运算,数据传输等数据加工处理 控制器:控制程序的执行 CPU中还有寄存器和多级缓存 存储器:用于记忆程序和数据,例如内存 输入设备:将数据货这程序输入到计算机中,例如鼠标键盘 输出设备:将数据货程序的处理结果展示给用户,例如显示器,打印机
计算机语言:人与计算机交互的语言 高级语言的发展 非结构化语言 编号或标签,GOTO,子程序可以由多个入口和出口 有分支,循环
结构化语言 任何基本结构只允许是唯一入口和唯一出口 顺序、分支、循环,废弃GOTO
面向对象语言 函数式语言
程序Programm- 程序=算法+数据结构
数据是一切程序的核心 数据结构是数据在计算机中的类型和组织方式 算法是处理数据的方式,算法有优劣之分
写程序需要注意事项- 理清数据
- 理清处理方法
- 把数据设计转换成数据结构,把处理方法转换成算法
- 用设计范式来进行程序设备
- 世间程序皆有bug但要会debug
python解释器 官方CPython:C语言开发,最广泛的Python解释器 IPython:叫哥交互式,功能增强的Cpython PYPY:Python语言写的Python解释器,JIT技术,动态编译python代码 Jython:Python的源代码编译成Java的字节码,跑在JVM上 IronPython: 与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码
python基础语法(部分) 转义序列 \\ \t \r \n \' \" 前缀r,把里面的所有字符当普通字符对待
续行: 在行尾使用\ 如果使用各种括号,括号内是一个整体,内部不用\
标识符: 约定: 不允许使用中文 不允许使用歧义单词,exp:class_ 在python中不要随便使用下划线开头的标识符
常量: 一旦赋值就不嫩改变值的标识符 python中无法定义常量 字面常量: 一个单独的量,如 12,"abc" 变量: 赋值后可以改变值的标识符
Python的语言类型
静态编译语言 动态编译语言 不用事先生命类型,随时可以赋值为其它类型 编程时不知道是什么类型,很难推断
强类型语言 弱类型语言
原码,反码,补码,负数表示法 原码: 5 => 0b101,1 => 0b1,-1 => -0b1,bin(-1) 反码:正数的反码与原码相同,负数的反码符号位不变,其余按位取反 补码:正数的补码与原码相同,负数的补码符号位不变其余按位取反后 +1(负数补码的补码就是原码) 负数表示法 负数在计算机中使用补码存储,-1 的补码为1111 1111 5-1 => 5+(-1)直觉上是0b101-0b1,其实计算机中是0b101+0b111111111.~12 = -13
表达式Expression:由数字,符号,括号,变量等的组合 算数表达式 逻辑表达式 赋值表达式:python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义
内存管理 垃圾回收机制 GC python编程中一般无需关心变量的存亡,一般也不用关心内存的管理 Python使用对象引用计数记录所有对象的引用数 当对象引用数变为0,它就可以被垃圾回收 GC 有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求.exp:内在正在整理释放,这时无法使用这块区间的数据
False等价布尔值,相当于bool(value) 1.空集合 - 空字符串"" - 空元祖 () - 空列表 [] - 空字典 {} 2.None对象 3.0
|