第一章:学习准备
文本和字符集
文本分类
纯文本:只能保存文本内容,无法保存无关东西
富文本:可以保存文本以外的内容
解码,编码与字符集
- 编码:将字符转换为二进制的过程
- 解码:将二进制转换为字符的过程
- 字符集:编码和解码时所采用的规则
常见字符集
- ASCII:美国人编码,使用7位,对美国人常用的字符进行编码,包含128个字符
- ISO-8599-1:欧洲的编码,使用8位,包含256个字符
- GB2312、GBK 国标码,中国的编码
- Unicode:万国码,包含世界上所有语言和符号,编码程序时一般都会使用Unicode编码 Unicode 编码有多种实现,UTF-8,UTF-16,UTF-32,常用的是UTF-8
乱码
编程时发现乱码,需要检查字符集是否正确
第二章:Python 简介及环境搭建
1.计算机语言的发展
- 机器语言
- 符号语言(汇编)
- 高级语言
2.编译型语言和解释型语言
编译型语言
编译型语言,会再代码执行前将代码编译为机器码,然后将机器码交由计算机执行(比如:C语言)
a(源码) -- 编译 -- b(编译后的机器码)
特点:执行速度快,跨平台性能较差
解释型语言
解释型语言,不会再执行前对代码编译,而是再执行的同时一边执行一边编译(例如:python js java)
a(源码)-- 解释器-- 解释执行
特点:执行速度比较慢,跨平台性比较好
3.python 简介
Python 的用途
- WEB网站应用(如Facebook,豆瓣等)
- 编写爬虫程序
- 科学计算
- 自动化运维(用Python 编写自动化运维脚本)
- 大数据应用(利用Python 对数据进行清洗,提取有用的数据,并分析数据)
- 云计算
- 开发桌面软件,游戏
- 人工智能
4.Python 环境搭建
一、Python 的解释器分类:
- CPython :用C语言编写的Python 解释器(官方解释器)
- PyPy: 用Python 语言编写的Python 解释器
- IronPython :用 .net 编写的Python 解释器
- Jython:用 Java 编写的Python 解释器
二、搭建CPython开发环境
第三章 语法入门
1.几个基本概念
一、表达式
- 类似于一个数学公式
- 用于计算,不会对程序产生影响
- 在交互模式中输入表达式,会自动输出结果
二、语句
- 用于完成某种功能(如:打印信息,获取信息,为变量赋值)
- 语句执行会对程序产生影响
- 交互模式中不一定输出执行结果
三、程序(program)
- 由语句和表达式构成
四、函数(function)
-
完成特定的功能的语句
-
格式一般是:xxx()
-
函数分类
- 内置函数
- 自定义函数
-
函数的2个要素
- 参数
- 返回值
2.python的基本语法
- 严格区分大小写
- 每行就是一条语句,以换行结束
- 一行不要超过80个字符
- 一条语句分多行以 \结尾
- 是缩进严格的语言
- 用 # 进行注释
3.字面量和变量
一、字面量
- 一个一个值,例:1,2,3,4,5,“hello”
二、变量
- 变量(variable),可以用来保存字面量,并且变量中保存的字面量是不定的变量,本身没有任何意思,他会根据不同字面量表示不同的意思
4.变量和标识符
一、变量
- Python 变量不需要声明,直接为变量赋值即可
- 不能使用未赋值的变量
二、标识符
-
再Python 中所有可以自主命名的内容都属于标识符,例:变量名,函数名,类名
-
标识符规范
- 可以含有字符,数字,下划线,但是不能以数字开头
- 不能是Python 中的 关键字和保留字
-
命名规范(2种)
- 下滑线命名法,所有字母小写,单词之间用_分割
- 驼峰命名法,首字母大写,每个单词开头字母大写,其余字母小写
第四章:数据类型
数据类型:变量值得类型
1.数值
数值类型
- 整数 int
- 浮点数(小数)float
- 复数
2.字符串
- 基本规则:用 单引号 ,双引号,三引号
格式化字符串
# 在字符串中指定占位符
b='hello %s'%'孙悟空'
# 格式化字符串
name='孙悟空'
print(f'hello{name}')
复制字符串
a='abc'
a=a*19
print(a)
3 布尔值和控制
一、布尔值(boolean/bool)
- 主要用于判断逻辑:true 为真,false 为假
- 布尔值属于整型,true相当于1 ,false相当于0
二、空值(None)介绍
4.类型检查
一、如何进行类型检查
用 type() 内置函数
5.对象介绍
对象(object)的介绍
- 引入:Python 是一门面向对象语言,程序运行当中所有的数据都存储到内存当中运行
- CPU负责计算,代码存到硬盘,解释器是将代码从硬盘加载到内存中再有内存传输到CPU进行执行
- 对象实际是一个容器,之前学的数值,字符串,布尔值,空值都属于对象
对象的结构
每个对象中都要保存三种数据:id,type,value
一、id(标识):
- id用来区分标识对象的唯一性,每个对象都有唯一的id
- 通过
id()函数查看对象的id - id 是由解析器生成的,再Cpython 中 ,id 即为对象的内存地址
- 对象一但创建,id永远不能改变
二、type(类型):
- type 类型标识当前对象所属的类型(如:int,str,bool,None)
- 类型的作用:类型决定了对象的功能呢
- 通过type() 查看类型
- Python 是一门强类型语言,对象一但创建,类型不能修改
三、value(值)
-
value 值是对象中存储的具体数据
-
有些对象值可以改变:
- 可变对象
- 不可变对象,学过的数值,字符串,布尔值,空值都是不可变对象
6.类型转换
将一个类型的对象转换为其他对象类型,转换不是改变对象本身类型,而是根据当前对象的值创造一个新对象
一、类型转换的四个函数:
int()
- bool :True--> 1 False --> 0
- 浮点型:直接取整,省略掉小数点后的内容
- 字符串:合法的整数字符串,直接转换为对应的数字,如果不是合法的整数字符串,则报错
float()
- 和int() 一致
str()
bool()
- 任何对象都可以转换为bool值
- 规则:对于所有表示空性质的对象都会转换为False,其余的转换为True
- 哪些表示空性:0,None,‘’。。。
第四章:运算符(操作符)
-
运算符可以对一个值或多个值进行运算或各种操作
-
不如+-= 都属于运算符
-
运算符的分类:
- 算数运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符
算数运算符详细介绍:
- +加法运算符
- -减法运算符
- /除法运算符
- //整除
- **幂运算
- %取模:两个数相乘的玉树
赋值运算符
可已将等号右侧的值赋值给等号左侧的变量
关系运算符
用来比较两个值之间的关系,总会返回一个布尔值,如果关系成立返回True 否者返回False
常见关系运算符
大于> ,小于< ,大于等于> = ,小于等于<=
字符串比较
- 当对字符串进行比较时,实际上比较的是字符串的Unicode编码
- 如果不希望比较两个字符串的Unicode编码,则需要将其转换成数字然后进行比较
- 比较两个字符串的Unicode编码时逐位比较的
逻辑运算符
一、运用
主要用来做一些逻辑判断
例如:若今天下雨就不出门,反之,则出门
二、not逻辑非
- not 可以对符号右侧的值进行非运算
- 对于布尔值,非运算会对其进行取反操作,True变False,False 变True
- 对于非布尔值,非运算会先将其转换成布尔值,然后再取反
a=True
a=not a # 既对a进行非运算
print('a=',a)
# 则 a=False
三、and逻辑与
- and 可以对符号两边的值进行与运算
- 只有对符号两侧的值都为True时,才会返回True ,只要有一个False就返回False
result=True and True # True
result=True and False # False
result=False and True # False
result=False and False # False
四、or逻辑或
- or可以对符号两侧的值进行或运算
- 或运算两个值中只要有一个True,就会返回True
result=True or True # True
result=True or False # True
result=False or True # True
result=False or False # False
非布尔值的逻辑运算符
当对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
一、与运算规则
- 与运算是找False ,第一个值是False ,则不看第二个值
- 如果第一个值是False,则直接返回第一个值,否则返回第二个值
result=1 and 2 # 2
result = 1 and 0 # 0
result = 0 and 1 # 0
reuslt= 0 and None # 0
二、或运算规则
- 或运算是找True ,如果第一个值是True ,则不看第二个值
- 如果第一个值是True,则直接返回第一个值,否者返回第二个值
# True or True
result=1 or 2 # 1
# True or False
result=1 or 0 # 1
# False or True
result=0 or 1 # 1
# False or False
result =0 or None # None
条件运算符(三元运算符)
一、语句
语法:语法1 if 条件表达式 else 语句2
二、执行流程
-
条件运算符再执行时,会先对条件表达式进行值判断
- 如果判断结果是True ,则会执行语句1,并返回结果
- 如果判断结果为False,则会执行语句2,并返回结果
a=10
b=20
print('a的值比较大!') if a>b else print('b的值比较大!')
运算符优先级
- 指针最优,单目运算符由于双目运算符
- 先算数运算,后移位运算,最后位运算
- 开发过程中遇到优先级不清楚的请况,可以通过小括号来改变运算顺序
第五章:流程控制语句
if语句
一、流程控制语句简介
-
Python代码再执行时是按照自上向下顺序执行的
-
通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次
-
流程控制语句分成2大类:
- 条件判断语句
- 循环语句
input() 函数
- 该函数用来获取用户的输入
input()返回值是一个字符串input()可以设置一个字符串作为参数,这个字符串将会作为提示文字显示,如input('请输入任意内容:')
if-else 语句
if-else语句在执行时,先对if后的条件表达式进行求值判断,如果为True则执行if后的代码,如果为False ,则执行else 后的代码
if-elif-else 语句
一、执行流程
- if-elif-else 语句在执行时,会自上向下一次对条件表达式进行求值判断,如果表达式的结果是True,则执行当前代码块,然后结束语句,如果表达式结果为False,则继续向下判断,直到找到True 为止,如果所有表达式都是False ,则执行else后的代码块
- if-elif-else 中只会有一个代码块会执行
While 和 for 循环语句
循环语句:使指定代码重复指定的次数
一、While 循环语句
语法
while 条件表达式
代码块
else:
代码块
执行流程
- while 语句在执行时,会先对while 后的条件表达式进行求值判断,如果判断结果为True ,则执行循环体,循环体执行完毕,继续对条件表达式进行求值判断,以此类推,直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块
死循环
- 条件表达式恒为True 的循环语句,称为死循环,他回一直运行,慎用!
循环的三个要件(表达式)
- 初始化表达式,通过初始化表达式初始化一个变量
- 条件表达式,条件表达式用来设置循坏执行的条件
- 更新表达式,修改初始化变量的值
# 求 1000 以内的水仙花数
# 水仙花数是指n位数(n>=3),他的每个位数字的n次幂之和等于他本身
i=100
while i<1000:
a=i//100
b=i//10%10
c=i%10
if(a**3+b**3+c**3)==i:
print(i)
i+=1
else:
pass
break 和 continue
一、break
作用:break 可以用来立即退出循环语句(包括else)
执行的到的只有break之前的语句,即break只有的命令自动结束
二、continue
作用:可以跳过档次循环
break 和continue 都只对离他们最近的循环起作用
三、pass
作用: 用来判断或循环语句中占位