编程基础
现代计算机两个著名的计算机任务一个是艾伦‘麦席森‘图灵,被称作计算机之父。提出著名的图灵机为现代计算机的的逻辑工作方式奠定了基础。另一人是冯诺依曼提出了二进制,并且提出了计算机的五大部件。
就是冯诺依曼体系架构:输入设备、输出设备、存储器、运算器和控制器。
cpu是由运算器和控制器组成
运算器完成各种算数运算、逻辑运算、数据处理、数据传输
控制器控制程序的执行
存储器用于记忆程序和数据如内存
输入设备将数据或程序输入到计算机中
输出设备将数据或程序的执行结果展示给用户如打印机显示器等
cpu有寄存器和多级缓存
计算机语言 机器语言 汇编语言
低级语言 高级语言
低级语言不同机器不能通用,是面向机器的语言,包括汇编语言
高级语言通过编译器把源程序转换成机器指令的程序。高级语言和低级语言之间需要转化工具:编译器、解释器
java、python、c#的源代码需要被解释器编译成中间代码(Bytecode)
高级语言的发展
非结构化语言
结构化语言
面向对象语言 封装、继承、多态
函数式语言
程序
算法 + 数据结构 =程序
算法是处理数据的方式,算法有优劣之分
pyhon解释器
官方cpython c语言开发 最广泛的python解释器
ipython
pypy python语言写的python解释器,just in time技术。动态编译python代码,有时效率可达cpython5倍以上
python基础语法
# 标注注释
进制0xa、0o10、0b10
bool T F
浮点数 1.46e9
负数1 + 2j
字符串'''和"""可以跨行可以在其中使用单双引号
在字符串前面加上r或R 字符不处理
\\ \\ \t \r \n \' \" 转义序列
在行尾使用\续航,括号不用续行
python不能定义常量
python是动态语言,强类型语言
算数运算符:
+ - * / % **
位运算符:
& | ~ ^ << >>
原码、反码、补码,负数
原码 5 0b101 -8 1000 1000
反码 0b101 1111 0111
补码 1111 1000(取反加1)
比较运算符
== != > < >= <=
逻辑运算符
与或非 and or not
短路运算符 and or
运算符优先级
python使用引用计数来记录所有对象的
引用计数
gc 垃圾回收 c语言等没有垃圾自动规整
正在内存规整挪移时不准许使用所在内存
一般不建议手动垃圾回收(可能带来性能问题)
程序控制
顺序控制;按照先后顺序
分支:按照条件
循环:迭代,条件满足反复执行,不满足结束
分支
if 后面的condition必须要是一个bool值(只有TorF两种)
真值表
练习
给定一个不超过5位的正整数,判断其有几位