小结1

Posted on 2019-09-12 14:23  猪宝店幼儿园  阅读(141)  评论(0编辑  收藏  举报

计算机基础之编程

什么是编程语言

编程语言是人与计算机交流的介质

什么是编程

通过编程语言编写一大堆文件

为什么要编程

奴役计算机,替代劳动力

计算机五大组成

CPU

控制器

控制硬件

运算器

算术运算和逻辑运算

内存

优点: 速度快

缺点: 断掉即消失,存储容量小

外存

优点:容量大,永久存储

缺点:速度慢

输入设备

输入信息,键盘/鼠标/u盘

输出设备

输出信息,显示屏/打印机/u盘

IO设备

u盘是io设备,既能输入信息,又可输出信息

应用程序的启动流程

  1. 双击qq(找到qq的路径)
  2. 操作系统发送指令给CPU
  3. CPU发送指令给内存
  4. 内存从外存中取出qq的代码
  5. 运行qq

32位和64位

电脑一次读取32/64个字节,64位的电脑能装32的软件,32的电脑不能装64位的软件,向下兼容性

多核CPU

3核CPU人类的三个头,同一时刻完成多件事情

机械硬盘工作原理

机械手臂:读取数据

磁道:存储数据

扇区:划分磁道

平均寻道时间:5ms

平均延迟时间:4.15ms

平均寻找数据时间:9.15ms

固态硬盘(了解)

基于电和算法实现的数据存储,不需要平均寻道时间,寻找数据时间是光速

计算机操作系统

什么是文件

操作系统提供的虚拟单位,用来存储数据

什么是应用程序

一堆文件

操作系统有什么用

把对硬件的复杂指令简单化

计算机的三大组成

硬件: 操作系统, 内存和外存的直接交互

操作系统:硬件/用户/应用程序

应用程序:操作系统

用户:操作系统

操作系统的启动

  1. 开机
  2. 启动临时的操作系统
  3. 临时的操作系统找到真正的操作系统的路径
  4. 启动真正的操作系统,临时操作系统关闭

编程语言分类

机器语言

优点:执行效率高

缺点:开发效率低

汇编语言

优点(相较于机器语言):开发效率高

缺点(相较于机器语言):执行效率低

高级语言

解释型语言(同声传译)

解释器都是用编译型语言写的

优点(相较于编译型语言):开发效率高

缺点(相较于编译型语言):执行效率低

编译型语言(谷歌翻译)

优点(相较于解释型语言):执行效率高

缺点(相较于解释型语言):开发效率低

网络的瓶颈效应

类似qq需要经常访问网络的程序,网络传输信息的延迟是远远大于程序执行的时间,程序执行的时间可以忽略不计

操作系统不需要网络的程序,用编译型更好

执行Python程序的两种方式

交互式

cmd写代码,不能永久保存代码,方便调试

命令行式

可以永久保存代码

变量

什么是变量

变量用来描述世间万物变化的状态

如何定义变量

x = 0

变量的组成

变量名: 接收变量值

赋值符号: 赋值的作用

变量值: 具体的数值

定义变量名的规范

  1. 变量名具有意义
  2. 变量名由数字/字母/下划线组成,首字母不能为数字,也不能为_(如果为了就是不要引用的意思)

变量名的两种命名风格

  1. 驼峰体
  2. 下划线(建议使用)

常量

不变的量,变量名全大写,但在Python中是可以变化,这只是程序员约定俗成的,

Python变量内存管理

引用计数

新定义一个变量,开辟一块内存空间,引用计数1x=1

变量值多加了一个引用,引用计数加1y=x

删除一个引用,引用计数减1del x

垃圾回收机制

变量值的引用计数为0的时候,释放变量值的内存空间

小整数池

[-5,256]的整数不会被垃圾回收机制回收,因为PYthon解释器启动的时候就会自动开辟一块内存空间放入这些整数

花式赋值

链式赋值

x=y=10

交叉赋值

x = 10 
y = 20

x, y = y, x

z = x
x = y
y = z

注释

单行注释

注释取消代码的意义,变成普通的字符

解释代码的意思

多行注释

'''

数据类型基础

为什么要有数据类型

不能用单一的数据类型描述世间万物,所以多种数据类型

解压缩

lis = [1,2,3]

x,y,z = lis

# x = 1, y = 2, z = 3

Python与用户交互

input()


input接收的所有值都是字符串

Python格式化输出的三种方式

占位符%

'%s'%'nick'

format格式化

'{}'.format('nick')

f-string格式化

f"{'nick'}"

基本运算符

算术运算符

+-*/ % // **

逻辑运算符

and or not

比较运算符

> >= < <= == !=

赋值运算符

= += -= *= /= //= %= **=

身份运算符

is

is not

运算符的优先级

优先的加括号就行

流程控制之if判断

单分支结构

if <条件>:
    <代码块>

双分支结构

if <条件>:
    <代码块1>
else:
    <代码块2>

多分支结构

if <条件1>:
    <代码块1>
elif <条件2>:
    <代码块2>
...
else:
    <代码块3>

if嵌套

if <条件1>:
    <代码块1>:
    if <条件2>:
        pass

流程控制之while循环

while + break

跳出本层循环

while + continue

跳出本次循环

while + else

判断循环有没有被break,被break不执行else

while嵌套

while <条件1>:
    while <条件2>:
        pass

流程控制之for循环

for + break

for + continue

for + else

for循环嵌套

有序or无序

有索引的就有序,无索引的就无序

可变or不可变

值变id也变的是不可变

值变id不变的是可变