Python基础小结
计算机基础之编程
什么是编程语言
编程语言是人与计算机交流的介质
什么是编程
通过编程语言编写一大堆文件
为什么要编程
奴役计算机,替代劳动力
计算机五大组成
CPU
控制器
控制硬件
运算器
算术运算和逻辑运算
内存
优点: 速度快
缺点: 断掉即消失,存储容量小
外存
优点:容量大,永久存储
缺点:速度慢
输入设备
输入信息,键盘/鼠标/u盘
输出设备
输出信息,显示屏/打印机/u盘
IO设备
u盘是io设备,既能输入信息,又可输出信息
应用程序的启动流程
- 双击qq(找到qq的路径)
- 操作系统发送指令给CPU
- CPU发送指令给内存
- 内存从外存中取出qq的代码
- 运行qq
32位和64位
电脑一次读取32/64个字节,64位的电脑能装32的软件,32的电脑不能装64位的软件,向下兼容性
多核CPU
3核CPU人类的三个头,同一时刻完成多件事情
机械硬盘工作原理
机械手臂:读取数据
磁道:存储数据
扇区:划分磁道
平均寻道时间:5ms
平均延迟时间:4.15ms
平均寻找数据时间:9.15ms
固态硬盘(了解)
基于电和算法实现的数据存储,不需要平均寻道时间,寻找数据时间是光速
计算机操作系统
什么是文件
操作系统提供的虚拟单位,用来存储数据
什么是应用程序
一堆文件
操作系统有什么用
把对硬件的复杂指令简单化
计算机的三大组成
硬件: 操作系统, 内存和外存的直接交互
操作系统:硬件/用户/应用程序
应用程序:操作系统
用户:操作系统
操作系统的启动
- 开机
- 启动临时的操作系统
- 临时的操作系统找到真正的操作系统的路径
- 启动真正的操作系统,临时操作系统关闭
编程语言分类
机器语言
优点:执行效率高
缺点:开发效率低
汇编语言
优点(相较于机器语言):开发效率高
缺点(相较于机器语言):执行效率低
高级语言
解释型语言(同声传译)
解释器都是用编译型语言写的
优点(相较于编译型语言):开发效率高
缺点(相较于编译型语言):执行效率低
编译型语言(谷歌翻译)
优点(相较于解释型语言):执行效率高
缺点(相较于解释型语言):开发效率低
网络的瓶颈效应
类似qq需要经常访问网络的程序,网络传输信息的延迟是远远大于程序执行的时间,程序执行的时间可以忽略不计
操作系统不需要网络的程序,用编译型更好
一、执行Python程序的两种方式
1.1 交互式
在终端内输入python3,然后输入python代码, 不能永久保存,修改bug方便
1.2 命令行式
在终端内输入python3 文本文件路径,可以永久保存,修改bug不便
二、执行Python程序的两种IDE
2.1 Pycharm
2.2 Jupyter
三、变量
3.1 什么是变量?
变量一般用来用来描述世间万物变化的状态
3.2 变量的组成?
变量名 = 变量值
变量名是用来接收变量值的
3.3 变量名的定义规范
- 变量名具有某种意义
- 由数字/字母/下划线组成,且不能由数字开头,(也不能由下划线开头)
- 不能用Python关键字
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
3.4 定义变量的两种方式
- 驼峰体:
NameOfRandy
- 下划线:`name_of_randy(推荐)
3.5 常量
常量是约定俗成的一种规范,常量名的定义方式为全大写.实际上可以被修改.
四、注释
4.1 单行注释
#注释的语句
,#后面的字符不执行语法,即只为普通字符,一般用来解释某一段代码
4.2 多行注释
三单引号/三双引号
4.3 引用计数
变量值的引用次数
x = 257 # 257的引用计数为1
y = x # 257的引用计数为2
del x # 257的引用计数为1
4.4 垃圾回收机制
当变量值的引用计数为0的时候,该变量值会被Python自动回收它的内存占用,分代回收
4.5 小整数池
[-5,256]之间的整数会在Python解释器启动的时候,自动开辟一块内存存入这些整数.也就是说这些整数不会因为引用计数为0而被删除
五、花式赋值
5.1 链式赋值
x = y = z = 10
5.2 交叉赋值
# 交叉赋值
x = 10
y = 20
x, y = y, x
print(x, y)
# 使用临时变量
x = 10
y = 20
temp = x
x = y
y = temp
print(x, y)
六、与用户交互
七、input
input输入的都是字符串形式
八、格式化输出
8.1 占位符
%s接收任意数据类型的数据
%d接收数字类型的数据
name = 'randy'
'randy name is %s'%name
8.2 format格式化
{}接收任意数据类型的数据
name = 'randy'
'randy name is {}'.format(name)
8.3 f-string格式化
在字符串前面加上f或F,然后使用{}接收任意数据类型的数据
name = 'randy'
f'randy name is {name}'
九、基本运算符
9.1 算术运算符
+ - * / % // **
9.2 逻辑运算符
and or not
9.3 比较运算符
> >= < <= == !=
9.4 赋值运算符
= += -= *= /= //= **= %=
9.5 身份运算符
is is not
- id相同的值一定相同,值相同的id不一定相同
9.6 运算符优先级(略)
如果需要某个运算符优先运算,则加个括号,使用a and b is c == d
的是傻逼
9.7成员运算符
in , not in
9.7 解压缩
hobby_list = ['read','run','sleep','fishing','piao']
# 如果取第2-3个爱好
_,hobby2,hobby3,*_ = hobby_list
print(hobby2, hobby3)
一十、流程控制
10.1 流程控制之if判断
10.1.1 if
if 条件:
代码块
10.1.2 if...else
if 条件:
代码块
else:
代码块
10.1.3 if...elif....elif...else
if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
...(可以写任意个elif)
else:
代码块
10.2 流程控制之while循环
10.2.1 while
while 条件:
代码块
10.2.2 while + break
while 条件:
代码块
break # 结束本层循环,跳出循环
10.2.3 while + continue
while 条件:
代码块
if 条件:
代码块
cotinue # 不执行下面代码,然后继续循环,即跳出本次循环
代码块
10.2.4 while + else
while 条件:
代码块
else:
print('如果我没有被break,我就会被打印出来')
10.3 流程控制之for循环
10.3.1 for
for i in range/str/list/tuple/dict/set(可迭代对象):
print(i)
10.3.2 for + break
for i in range/str/list/tuple/dict/set(可迭代对象):
print(i)
break # 结束本层循环
10.3.3 for + continue
for i in range/str/list/tuple/dict/set(可迭代对象):
print(i)
if 条件:
continue # 结束本次循环,即不执行下面代码,继续循环
代码块
10.3.4 for + else
for i in range/str/list/tuple/dict/set(可迭代对象):
print(i)
else:
print('如果我没有被break,我就会被打印出来')