day11

目录

计算机基础之编程

什么是编程语言

人与计算机交流的介质

什么是编程

通过编程语言写一堆文件

为什么要编程

替代劳动力

计算机组成

CPU

控制器

控制硬件

运算器

算术运算和逻辑运算

存储器

主存

优点:快

缺点:容量小/断掉即消失/贵

外存

优点:容量大/永久存储/便宜

缺点:慢

IO设备

《追寻记忆的痕迹》

输入设备

输入信息,如键盘/鼠标

输出设备

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

32位和64位

一次性读取的二进制位

多核cpu

同一时刻干多件事情

机械硬盘工作原理

机械手臂

读取数据

磁道

存储数据

扇区

划分磁道

平均寻道时间

5ms

平均延迟时间

4.15ms

平均寻找数据时间

9.15ms

固态硬盘

基于电容存储数据

操作系统

什么是文件

操作系统提供的虚拟概念,存储信息

操作系统有什么用

把对硬件的复杂操作简单化

计算机三大组成

  1. 硬件
  2. 操作系统
  3. 软件

操作系统的启动

  1. 启动临时操作系统
  2. 临时操作系统启动真正的操作系统
  3. 关闭临时操作系统

应用程序的启动

  1. 双击qq(给操作系统发送指令)
  2. 操作系统给CPU发送指令
  3. CPU给内存发指令
  4. 内存给外存发指令
  5. 外存找到qq的数据丢给内存
  6. 启动qq

编程语言的分类

机器语言

优点:执行效率高

缺点:开发效率低

汇编语言

优点:开发效率高

缺点:执行效率低

高级语言

编译型语言

优点:执行效率高

缺点:开发效率低

解释型语言

优点:开发效率高

缺点:执行效率低

网络的瓶颈效应

网络延迟的时间远远大于程序执行的时间

执行python程序的两种方式

交互式

写一行解释一行

命令行式

python 文件.py

变量

什么是变量

描述时间万物的状态

变量的组成

变量名(接收变量值) = 变量值(具体的值)

变量名的命名规范

  1. 具有描述意义
  2. 数字/字母/下划线组成,不能以数字开头,_丢弃
  3. 不能用python关键字

变量名的两种定义方式

  1. 下划线(推荐)
  2. 驼峰体

常量

不变化的量(但这是约定俗称的)

变量的三种打印方式

  1. 打印变量值
  2. 打印变量内存地址
  3. 打印变量的数据类型

python变量内存管理

引用计数

针对变量值,变量值的引用次数

垃圾回收机制

变量值的引用计数为0,python解释器自动回收变量值

小整数池

[-5,256]之间的整数在python解释器启动就自动分配内存

花式赋值

链式赋值

a = b = 10

交叉赋值

x, y = y, x

布尔类型

所有数据类型自带布尔值,除了0/None/空/False自带布尔值位False,其他自带为True

解压缩

x, y, z = [1, 2, 3]

python与用户交互

input,接收的永远是字符串

三种格式化输出的方式

%占位符

'%s'%name

format格式化

'{}'.format(name)

f-string格式化

f'{name}'

基本运算符

算术运算符

+-*/ // % **

逻辑运算符

  1. and 两者都
  2. or 其中一者为True,则为True
  3. not 非

比较运算符

> >= < <= != ==

成员运算符

  1. in
  2. not in

身份运算符

  1. is
  2. is not

赋值运算符

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

位运算符

111 000
&
011 100

011 000
  1. & 都为1则为1,否则为0

运算符的优先级

要优先的加括号

流程控制之if判断

单分支结构

if

双分支结构

if

else

多分支结构

if

elif 可以用无数个

else

if嵌套

if

​ if

流程控制之while循环

while + continue

跳出本次循环,不执行下面的代码

while + break

跳出本层循环,终止循环

while + else

没有被break掉执行else下的代码

条件控制while循环

while count < 3:

while嵌套

while

​ while

流程控制之for循环

for + break

跳出本层循环,终止循环

for + continue

跳出本次循环,不执行下面的代码

for + else

没有被break掉执行else下的代码

for循环嵌套

for i in range(1,10):
    for j in range(i):
        print(....)
    print()

数字类型内置方法

整型

浮点型

字符串内置方法

列表内置方法

元组内置方法

字典内置方法

集合内置方法

散列表(哈希表)

  1. 乱序
  2. 不可重复的
  3. key不能为可变数据类型

深浅拷贝

拷贝

当l2为l1的拷贝对象,l1变换,l2变化

浅拷贝

当l2为l1的浅拷对象,l1内部不可变数据类型变化,l2不变;l1内部可变数据类型变化,l2变

深拷贝

当l2为l1的深拷贝对象,l1内部变化,l2不变

字符编码

python2和python3字符编码的区别

python解释器发生的三件事情

  1. python解释器相当于文本编辑器,读入字符(涉及字符编码)
  2. 识别语法/关键字,会有逻辑/语法错误
  3. 存储变量,然后往终端打印 (设计字符编码)

文件处理的基本使用

  1. 打开文件 open
  2. 修改文件 write / read
  3. 保存文件 flush
  4. 关闭文件 close

打开文件的三种模式

  1. r 只读
  2. w 清空写入
  3. a 追加写入,把光标移动到文件尾部

打开文件的两种方法

  1. t模式 文本模式
  2. b 二进制模式,适用于图片/音频/视频

绝对路径和相对路径

  1. 绝对路径:盘符
  2. 相对路径:相对执行文件的文件夹下的所有文件

with管理文件上下文

不用关闭文件,同时打开多个文件

文件的高级应用

新的文件打开的三种模式

  1. r+
  2. w+
  3. a+

光标的移动

以字节为单位

  1. seek 移动光标, 0表示开头,1表示当前位置,2表示末尾

  2. tell 告诉当前位置

  3. truncate 截断文件

  4. read 以字符为单位

文件的修改

with open('test.txt', 'r', encoding='utf8') as fr, open('test_swap.txt', 'w', encoding='utf8') as fw:
    data = fr.read()
    # 修改
    fw.write(data)
    
import os
os.remove('test.txt')
os.rename('test_swap.txt', 'test.txt')

函数的定义

def 函数名():
	代码

三种定义函数的方式

空函数

有参函数

无参函数

函数的调用

函数名()

函数的返回值

  1. return会返回一个值,默认返回None
  2. return会终止函数
  3. return会返回多个值

函数的参数

形参

接收实参,具有描述意义

位置形参

从左到右依次接收位置实参

默认形参

  1. 具有默认值 2. 默认形参必须得放在位置形参后面

实参

传值给形参,具有具体的值

位置实参

从左到右依次给位置形参传值

关键字实参

  1. 按照形参名传值 2.关键字实参必须得放在位置实参后面

可变长参数

*

*形参

用元组接收多余的位置实参,

*实参

打散列表,然后以位置实参传给位置形参

**

**形参

用字典接收多余的关键字实参

**实参

打散字典,然后以关键字实参传给位置形参

*形参**形参

接收所有的多余的参数

函数对象

引用

作为容器类元素

作为函数参数

作为函数的返回值

函数嵌套

def

​ def

外面不能引用函数内部定义的函数

名称空间与作用域

内置名称空间

放内置方法

全局名称空间

除了内置和局部就是全局

局部名称空间

函数内部的定义的变量/函数

执行顺序

内置 --》 全局 --》 局部

搜索顺序

从当前位置开始 局部 --》 全局 --》 内置 --》 报错

全局作用域

全局作用域的 x 和局部作用域的 x 没有半毛钱关系,可变数据类型除外

局部作用域

局部作用域1的 x 和局部作用域2的 x 没有半毛钱关系

global

局部的可以修改全局的

nonlocal

局部的修改外层局部的

legb原则

posted @ 2019-09-23 17:06  夜凛  阅读(253)  评论(0编辑  收藏  举报