- Microsoft Windows[版本 6.1.7601] —-> 版本
- 计数 : 0 1 2 3 4 5 6 7 8 9 10 11 12 …..19 20
- 计 数 : 0 1 10 11 100 101 110 111 1000….
- 计数 : 0 1 2 3 4 5 6 7 10 11 ….. 17 20 21…27 30
- 计数 : 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 … 1a 1b 1c 1d 1e 1f
- 1024byte = 1KB(千字节)
- (输⼊ import this)
- Python 3. 6. 5 …. —-> 版 本
- 指定版本
# 最⼩版本- https://www.lfd.uci.edu/~gohlke/pythonlibs/">地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
- 1、主题修改 File—settings—apperance—theme
- 3、关闭更新 File—settings—-apperance—-System Settings —- Updates —- Automatically check updates for 取消打钩
- 5、⾃动导包 File—settings—-apperance—General —-Auto Import 打钩
- Settings —-Reopen last project startup
- 8、修改字体编码 File—settings—Editor—-Code Style —- File Encoding —- Project Encoding
- 程序(program)
- 函数(function)
- name1 name_1 _name1 1name(不⾏)
- input() 函数
- else :
- if-elif-else 语句
- ……..
- else:
- break和continue
- in 和 not in
- min() 获取列表中最⼩值list.index(x[, start[, end]])
- del list[起始 : 结束] list = []
- range(start, stop[, step])
- a = {“name”:”123”,”data”:{“result”:[{“src”:”python1”},
01 - 计算机要点
⼀. 课程安排
⼆. 课堂笔记
- 计算机基本概念
- 计算机是什么?
- 计算机的组成?
- 计算机语⾔的基本概念
- 计算机语⾔的发展
- 解释型语⾔和编译型语⾔的区别
- 交互⽅式
- 交互⽅式的种类
- ⽂本交互模式打开的⽅式(win)
- DOS命令
- ⽂本⽂件和字符集
- ⽂本⽂件
- 常⻅的字符集
- 进制
- 进制之间的转换
- 进制的计数
- 数据间的换算
- 环境变量
- 基本概念
- path环境变量
⼀. 课程安排
课程作业
课程内容知识点需要写成⽂章发表到博客/简书/CSDN 课程内容
- 计算机基本概念计算机是什么? 计算机的组成?
- 计算机语⾔
计算机语⾔的基本概念计算机语⾔的发展
解释型和编译型的语⾔区别
- 交互⽅式
交互⽅式的种类
⽂本交互模式打开的⽅式(win)
DOS命令
- ⽂本⽂件和字符集
- ⽂本⽂件
- 字符集
- 进制
进制之间的转换进制的计数
数据间的换算
- 环境变量
- 基本概念
path环境变量
⼆. 课堂笔记
- 计算机基本概念
- 计算机是什么?
计算机(computer)俗称电脑,是现代⼀种⽤于⾼速计算的电⼦计算机器特点 : 数值计算 逻辑计算 存储记忆功能
总结 : 能够按照程序运⾏、⾃动、⾼速处理数据的现代化智能电⼦设备
- 计算机的组成?
硬件:⿏标 键盘 显示器 CPU 硬盘… 看的⻅摸的着.
软件:PyCharm QQ 浏览器 英雄联盟 看不⻅摸不着
- 计算机语⾔的基本概念
概念 :计算机语⾔(Computer Language)指⽤于⼈与计算机之间通讯的语⾔。
总结:能够按照程序运⾏、⾃动、⾼速处理数据的现代化智能电⼦设备
- 计算机语⾔的发展
机器语⾔ —> 汇编语⾔ —> ⾼级计算机语⾔
机器语⾔:最初的机器语⾔都是由0 和 1组成的⼆进制数,说⽩了⼆进制就是机器语⾔组成的基础
汇编语⾔:汇编语⾔是在机器语⾔基础之上发展的,它⽤了⼀些简单的字⺟和符
号串来代替⼆进制串,这样就提⾼了语⾔的记忆性和识别性
⾼级计算机语⾔: 就是⼀系列指令的集合 例如: JAVA C C++ Python
- 解释型语⾔和编译型语⾔的区别
编译型语⾔ 代表语⾔ C
x(源码) —编译—> y(编译后的机器码) 执⾏速度特别快 跨平台性⽐较差
解释型语⾔ 代表语⾔ Python 执⾏速度⽐较慢 跨平台性⽐较好
x(源码)—解释器—> 解释执⾏
- 交互⽅式
- 交互⽅式的种类
命令⾏的交互⽅式 (Text-based User Interface) TUI 图形界⾯化的交互⽅式 Graphical User Interfac) GUI
- ⽂本交互模式打开的⽅式(win)
Microsoft Windows[版本 6.1.7601] —-> 版本
版权所有(c) 2009 Microsoft Corporation。保留所有权利 —-> 版权声明C:\User\Administrator>
C: —->所在磁盘的根⽬录 (可以通过 X: 切换盘符)
\User\Administrato —-> 所在磁盘路径,当前所在的⽂件夹
> —-> 命令提示符 (在后⾯可以直接输⼊指令)
- DOS命令
dir | 列出当前⽬录下的⽂件夹或者⽂件 |
---|---|
md | 创建⽬录 |
rd | 删除⽬录 |
cd | 进⼊指定⽬录 |
cd.. | 退回上⼀级⽬录 |
cd/ | 退回到根⽬录 |
del | 删除⽂件 |
exit | 退出dos命令 |
- ⽂本⽂件和字符集
- ⽂本⽂件
⽂本分为两种 : ⼀种 纯⽂本 ⼀种 富⽂本
纯⽂本只能保存单⼀的⽂本内容,⽆法保存内容⽆关的东⻄(例如 txt⽂本⽂档) 富⽂本可以保存⽂本以外的东⻄(例如 有道笔记)
纯⽂本在计算机底层也会转换为⼆进制保存
将字符转换为⼆进制码的过程,我们称之为编码 encode() 将⼆进制码转换成字符的过程,我们称之为解码 decode()
- 常⻅的字符集
ASCII 美国⼈编码 使⽤7位来对美国常⽤的字符进⾏编码 包含128个字符
ISO-8859-1 欧洲的编码 使⽤8位来编码 包含256个字符
GBK 中国⼈编码(国标码)
Unicode 万国码 包含世界上所有语⾔和字符 编写程序⼀般都会使⽤Unicode 编码
Unicode 编码有多种实现 UTF-8 UTF-16 UTF-32
⼗进制—>⼆进制 原理: 对⼗进制数进⾏除2运算
⼆进制 — > ⼗进制 原理:⼆进制乘以2(次幂)的过程
进制越⼤表现形式越短,之所以出现其他进制就是为了更⽅便的表示数据
进制的计数
计数 : 0 1 2 3 4 5 6 7 8 9 10 11 12 …..19 20
计 数 : 0 1 10 11 100 101 110 111 1000….
计数 : 0 1 2 3 4 5 6 7 10 11 ….. 17 20 21…27 30
⼗六进制
⼗六进制满⼗六进位 ⼗六进制的数字 引⼊了 a b c d e f 表示 10 11 12 13 14 15
计数 : 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 … 1a 1b 1c 1d 1e 1f
20 21 22 23 24….2a 2b 2c 2d 2e 2f 30 31 32 33 34.. 3a 3b…
数据间的换算
bit是计算机中最⼩的单位
byte是我们最⼩的可操作的单位8bit = 1byte(字节)
1024byte = 1KB(千字节)
1024KB = 1MB(兆字节)
1024MB = 1GB(吉字节)
1024GB = 1TB太字节)
环境变量
- 基本概念
环境变量(environment variables)⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数,如:临时⽂件夹位置和系统⽂件夹位置等
环境变量操作
- 查看环境变量
右键计算机(此电脑),选择属性 系统界⾯左侧选择 ⾼级系统设置选择环境变量
- 添加环境变量
通过新建按钮添加环境变量
环境变量可以有多个值 , 值与值之间⽤ 英⽂分号隔开
- 修改环境变量
通过编辑按钮来修改环境变量
- 删除环境变量
通过删除按钮来删除环境变量
- path环境变量
path环境变量 保存的是⼀个⼀个的路径
当我们在命令⾏中输⼊⼀个命令,系统会先在当前⽬录下找,如果有就直接
打开
如果没有则会去path环境变量的路径去找,直到找到为⽌。没找到则会报错我们可以将⼀些经常要访问的⽂件或程序的路径添加到环境变量当中。这样我们就可以在任意位置来访问这些⽂件了
注意事项:
path环境变量不区分⼤⼩写 path Path PATH 多个路径之间⽤ ; 隔开
- Python要点
⼀.课程安排
⼆.课堂笔记
- Python语⾔
- Python语⾔的基本概念
- Python 的特⾊
- Python的发展及应⽤
- 搭建环境
- Python的解释器
- 搭建Python环境
- Python的交互模式
- pip⼯具的使⽤查看pip版本
普通安装
指定版本安装 卸载已安装的库
列出已经安装的库 显示所安装包的信息
将已经安装的库列表保存到⽂本⽂件中
1. Python的第⼀个程序
- PyCharm的安装和配置
- PyCharm的安装
- PyCharm的简单配置
⼀.课程安排
课程作业
课程内容知识点需要写成⽂章发表到博客/简书/CSDN
能够独⽴完成Python和PyCharm的安装,能够编写⼀个 hello word程序课程内容
- Python语⾔
Python语⾔的基本概念
Python 的特⾊
Python的发展及应⽤
- 搭建环境
Python的解释器搭建Python环境
Python的交互模式
Python的第⼀个程序
- PyCharm的安装和配置
PyCharm的安装
PyCharm的配置
⼆.课堂笔记
- Python语⾔
- Python语⾔的基本概念
Python 是⼀种极少数能兼具 简单 与 功能强⼤ 的编程语⾔。你将惊异于发现你正在使⽤的这⻔编程语⾔是如此简单,它专注于如何解决问题,⽽⾮拘 泥于语法与结构
官⽅对 Python 的介绍如下:
Python 是⼀款易于学习且功能强⼤的编程语⾔。 它具有⾼效率的数据结构,能够简单⼜有效地实现⾯向对象编程。Python 简洁的语法与动态输
⼊之特性,加之其解释性语⾔的本质,使得它成为⼀种在多种领域与绝⼤ 多数平台都能进⾏脚本编写与应⽤快速开发⼯作的理想语⾔
Python 的创造者吉多·范罗苏姆(Guido van Rossum)采⽤ BBC 电视节
⽬《蒙提·派森的⻜⾏⻢戏团(Monty Python’s Flying Circus,⼀译巨蟒剧团)》的名字来为这⻔编程语⾔命名
- Python 的特⾊简单
易于学习
⾃由且开放跨平台
可嵌⼊性丰富的库
- Python的发展及应⽤
Python的应⽤ 常规软件开发科学计算
⾃动化运维
⾃动化测试
WEB开发
⽹络爬⾍数据分析
⼈⼯智能
(输⼊ import this)
美胜于丑陋(Python 以编写优美的代码为⽬标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,⻛格相似) 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接
⼝简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望⼀⾏代码解决问题) 可读性很重要(优美的代码是可读的)
即便假借特例的实⽤性之名,也不可违背这些规则(这些规则⾄⾼⽆上)
不要包容所有错误, 除⾮你确定需要这样做( 精准地捕获异常, 不写except:pass ⻛格的代码)
当存在多种可能,不要尝试去猜测⽽是尽量找⼀种,最好是唯⼀⼀种明显的解决⽅案(如果不确定,就⽤穷举法)
虽然这并不容易,因为你不是 Python 之⽗(这⾥的 Dutch 是指 Guido ) 做也许好过不做,但不假思索就动⼿还不如不做(动⼿之前要细思量)
如果你⽆法向⼈描述你的⽅案,那肯定不是⼀个好⽅案;反之亦然(⽅案测评标准)
命名空间是⼀种绝妙的理念,我们应当多加利⽤(倡导与号召)
- 搭建环境
- Python的解释器
环境搭建就是安装Python的解释器
Python的解释器分类:
CPython(官⽅我们⽤的就是这个版本) ⽤c语⾔编写的Python解释器
PyPy ⽤Python语⾔编写的Python解释器
JPython ⽤Java编写的Python解释器
- 搭建Python环境官⽹链接
下载安装包
安装成功
- Python的交互模式
win键 + R —> CMD —> 回⻋ —> 输⼊Python 命令⾏结构
Python 3. 6. 5 …. —-> 版 本
Type “help”,”copyright”…..—-> 版权声明
>>> —-> 命令提示符 (在后⾯可以直接输⼊指令)
- pip⼯具的使⽤
pip介绍
我们都知道python有很多的第三⽅库或者说是模块。这些库针对不同的应⽤, 发挥不同的作⽤。我们在实际的项⽬中肯定会⽤到这些模块。那如何将这些模 块导⼊到⾃⼰的项⽬中呢?
Python官⽅的PyPi仓库为我们提供了⼀个统⼀的代码托管仓库,所有的第三⽅库,甚⾄你⾃⼰写的开源模块,都可以发布到这⾥,让全世界的⼈分享下载 。
python有两个著名的包管理⼯具easy_install和pip。在python 2中
easy_install是默认安装的,⽽pip需要我们⼿动安装。随着Python版本的提
⾼,easy_install已经逐渐被淘汰,但是⼀些⽐较⽼的第三⽅库,在现在仍然只能通过easy_install进⾏安装。⽬前,pip已经成为主流的安装⼯具,⾃Python 2 >=2.7.9或者Python 3.4以后默认都安装有pip
pip使⽤
在命令⾏下,输⼊pip,回⻋可以看到帮助说明:
查看pip版本
- pip -V
- pip —version
普通安装
1 pip install requests
指定版本安装
pip install robotframework==2.8.7
卸载已安装的库
pip uninstall requests
指定版本
# 最⼩版本
- pip install SomePackage
- pip install SomePackage==1.0.5
- pip install ‘SomePackage>=1.0.6’
升级指定的包,通过使⽤==, >=, <=, >, < 来指定⼀个版本号。
列出已经安装的库
1 pip list
显示所安装包的信息
1 pip show package
将已经安装的库列表保存到⽂本⽂件中
pip freeze > D:\桌⾯\install.txt
使⽤wheel⽂件安装
除了使⽤上⾯的⽅式联⽹进⾏安装外,还可以将安装包也就是wheel格式的⽂ 件,下载到本地,然后使⽤pip进⾏安装。⽐如我在PYPI上提前下载的pillow库的wheel⽂件,后缀名为whl
地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
可以使⽤pip install pillow-4.2xxxxxxx.whl 的⽅式离线进⾏安装
第⼀步 安装 wheel
第⼆步 找到下载的whl⽂件的⽬录进⾏安装(以桌⾯为例)
第三步 执⾏命令安装
换源安装
⾖瓣 :http://pypi.douban.com/simple/
阿⾥ :http://mirrors.aliyun.com/pypi/simple/
中国科学技术⼤学:http://pypi.mirrors.ustc.edu.cn/simple 清华:https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install SomePackage -i https://pypi.douban.com/simple
- Python的第⼀个程序可以在交互模式实现
可以⽤Python⾃带的idle
可以⽤⾼级开发⼯具如 : PyCharm
- PyCharm的安装和配置
- PyCharm的安装
- PyCharm的简单配置
1、主题修改 File—settings—apperance—theme
2、代码字体修改 File—settings—Editor-Font3、关闭更新 File—settings—-apperance—-System Settings —- Updates —- Automatically check updates for 取消打钩
4、快捷键修改 File—settings—-apperance— Keymap 选择⾃⼰习惯的
快捷键⽅式5、⾃动导包 File—settings—-apperance—General —-Auto Import 打钩
6、进制打开上次的⼯程 File—settings—-apperance—-SystemSettings —-Reopen last project startup
7、修改新建⽂件⽂件头 File—settings—Editor—-Code Style —- File
and Code Templates —- Python Script
#!/usr/bin/env python
# -- coding: utf-8 --
: ${DATE} ${TIME}
# @Time
# @Author : Jerry
: ${NAME}.py
# @File
8、修改字体编码 File—settings—Editor—-Code Style —- File Encoding —- Project Encoding
- 基本数据类型
⼀.课程安排
⼆.课堂笔记
- ⼏个概念
- 表达式
- 语句
- 程序(program)
- 函数(function)
- 标识符
- 关键字
- 标识符概念
- 基本数据类型
- 整数和⼩数
- 布尔值和空值
- 变量
- 变量的概念?
- 变量的运算
- 字符串
- 什么是字符串
- 转义字符
- ⻓字符串
- 格式化字符串
- 字符串的其他操作
⼀.课程安排
课程作业
练习课堂中⽼师敲的代码
a,b = 6, 8 我想让a=8 b=6我该怎么办?⽤2种⽅式实现
print()语句练习,⽤两种⽅式打印 hello,python 课程内容
1. ⼏个概念表达式语句
程序(program) 函数(function)
1. 标识符
关键字
标识符概念
1. 基本数据类型整数和⼩数 布尔值和空值
1. 变量
变量的概念变量的运算
1. 字符串
什么是字符串
转义字符
⻓字符串
格式化字符串占位符
字符串的其他操作
⼆.课堂笔记
- ⼏个概念
- 表达式
表达式,是由数字、算符、数字分组符号(括号)、⾃由变量和约束变量等以能求得数值的有意义排列⽅法所得的组合
表达式特点
表达式⼀般仅仅⽤于计算⼀些结果,不会对程序产⽣实质性的影响
如果在交互模式中输⼊⼀个表达式,解释器会⾃动将表达式的结果输出
- 语句
⼀个语法上⾃成体系的单位,它由⼀个词或句法上有关连的⼀组词构成
语句的执⾏⼀般会对程序产⽣⼀定的影响,在交互模式中不⼀定会输出语句的执⾏结果
程序(program)
程序就是由⼀条⼀条的语句和⼀条⼀条的表达式构成的。
函数(function)
函数就是⼀种语句,函数专⻔⽤来完成特定的功能函数⻓的形如:xxx()
函数的分类:
内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含
在编译器的运⾏时库中,程序员不⽐单独书写代码实现它,只需要调⽤既可。
⾃定义函数 : 由程序员⾃主的创建的函数 当我们需要完成某个功能时,就可以去调⽤内置函数,或者⾃定义函数
函数的2个要素参数
返回值
标识符
- 关键字
python⼀些具有特殊功能的标识符,这就是所谓的关键字关键字,是python 已经使⽤的了,所以不允许开发者⾃⼰定义和关键字相同的名字的标识符
- 标识符概念
开发⼈员在程序中⾃定义的⼀些符号和名称。标识符是⾃⼰定义的,如变量名
、函数名等
组成:由26个英⽂字⺟⼤⼩写,数字 0-9 符号 _$
标识符的规则:
驼峰命名法
⼩驼峰式命名法: 第⼀个单词以⼩写字⺟开始;第⼆个单词的⾸字⺟⼤写,例如:myName、aDog
⼤驼峰式命名法: 每⼀个单字的⾸字⺟都采⽤⼤写字⺟,例如:
FirstName、LastName 下划线命名法
不过在程序员中还有⼀种命名法⽐较流⾏,就是⽤下划线 _ 来连接所有
“ ”
的单词,⽐如 get_url buffer_size
- 基本数据类型
数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值
整数和⼩数
整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型
⼩数常量 : 所有⼩数 例如 a = 1.2 b=6.66 ⽤float类型表示
- 布尔值和空值
布尔: 只有2个值⼀个是True ⼀个是False
None常量:只有⼀个数值就是None 也就是空值
- 变量
- 变量的概念?
变量是计算机内存中的⼀块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字。
变量命名规则
变量名由字⺟、数字、下划线组成要符合标识符的命名规范
数字不能开头不能使⽤关键字
注意 : 是两个对象相等和两个对象是同⼀个对象是两个概念
1 | s1 = {‘Jerry’:’Python’ | } |
---|---|---|
2 | import copy | |
3 | s2 = copy.deepcopy(s1) | |
4 | print(s2) # {‘Jerry’: | ‘Python’} |
5 | ||
6 | print(id(s1),id(s2)) | |
7 | print(s1==s2) |
- 变量的运算
变量的运算就是正常的四则运算 ,需要注意的是在运算过程中含有浮点数,那
么它返回的就是⼀个浮点数类型
字符串
- 什么是字符串
字符串是由数字、字⺟、下划线组成的⼀串字符注意
单引号和双引号不能混合使⽤
Python中⽤⼀对双引号或者⼀对单引号包裹的内容就是字符串
- 转义字符
转义字符是⼀种特殊的字符常量。转义字符以反斜线”\”开头,后跟⼀个或⼏个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 转义 字符
“ ”
总结
\t 表示制表符 | ||
---|---|---|
\n 表示换⾏符 | ||
\\ 表示反斜杠 | ||
\‘ 表示 ‘ | ||
\ ‘’ 表示 ‘’ |
- ⻓字符串
⻓字符串 ⼜叫做⽂档字符串 我们使⽤三重引号来表示⼀个⻓字符串’’’ ‘’’ 三重引号可以换⾏,并且会保留字符串中的格式
- 格式化字符串
第⼀种格式化字符串 拼串
第⼆种格式化字符串 参数传递第三种格式化字符串 占位符
%s 字符串占位
%f 浮点数占位
%d 整数占位
第四种格式化字符串 f’{变量}’/ str.format
- 字符串的其他操作
len() 字符串的⻓度
max() 最⼤值
min() 最⼩值
split()分割字符串
join()拼接字符串去空格
s.strip() 左右两边去空格
s.lstrip() 去左边空格
s.rstrip() 去右边空格字符串⼤⼩写
s.upper() 全部⼤写
s.lower() 全部⼩写
s.isupper() 判断是不是⼤写
s.islower() 判断是不是⼩写
- 运算符
⼀.课程安排
⼆.课堂笔记
- 运算符
- 运算符的概念
- 运算符的分类
- 算术运算符
- 赋值运算符
- ⽐较运算符
- 逻辑运算符
- not 逻辑⾮
- and 逻辑与
- or 逻辑或
- ⾮布尔值的与或运算
- 条件运算符(三元运算符)
- 运算符的优先级
⼀.课程安排
课程作业
练习课堂中⽼师敲的代码
以4种格式化字符串的⽅式来实现 521 xxx 嫁给我好吗?
现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最⼤值
课程内容
- 运算符
运算符的概念运算符的分类
算术运算符
赋值运算符
⽐较运算符
逻辑运算符
not 逻辑⾮
and 逻辑与逻辑或
⾮布尔值的与或运算
条件运算符(三元运算符)
运算符的优先级
⼆.课堂笔记
运算符
- 运算符的概念
运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。例如:2+3,其操作数是2和3,⽽运算符则是“+”
- 运算符的分类
算术运算符赋值运算符
⽐较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)
- 算术运算符
加法运算符 表现形式 + 减法运算符 表现形式 - 乘法运算符 表现形式 除法运算符 表现形式 /
// 整除,只会保留计算后的整数位,总会返回⼀个整型
% 取模,求两个数相除的余数
* 幂运算,求⼀个值的⼏次幂
- 赋值运算符
复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是⼀样的
+= (x+= 3 相 当 于 x = x + 3 )
-= (x -= 3 相当于 x= x - 3 )
= (x = 3 相当于 x = x 3 )
= (x = 3 相 当 于 x = x * 3 )
/= (x /= 3 相当于 x = x/ 3 )
//= (x //= 3 相当于 x = x // 3 )
%= (x %= 3 相 当 于 x= x % 3 )
- ⽐较运算符
⽐较运算符⽤来⽐较两个值之间的关系,总会返回⼀个布尔值.如果关系成
⽴,返回True,否则返回False
> ⽐较左侧值是否⼤于右侧值
>= ⽐较左侧的值是否⼤于或等于右侧的值
< ⽐较左侧值是否⼩于右侧值
<= ⽐较左侧的值是否⼩于或等于右侧的值特殊的⽐较⽅式
== ⽐较两个对象的值是否相等
!= ⽐较两个对象的值是否不相等
is ⽐较两个对象是否是同⼀个对象,⽐较的是对象的id
is not ⽐较两个对象是否不是同⼀个对象,⽐较的是对象的id
- 逻辑运算符
- not 逻辑⾮
not可以对符号右侧的值进⾏⾮运算对于布尔值,⾮运算会对其进⾏取反操
作,True变False,False变True
- and 逻辑与
and可以对符号两侧的值进⾏与运算。 只有在符号两侧的值都为True时,才
会返回True,只要有⼀个False就返回False
与运算是找False的,如果第⼀个值为False,则不再看第⼆个值
- or 逻辑或
或运算两个值中只要有⼀个True,就会返回True
或运算是找True的
- ⾮布尔值的与或运算
当我们对⾮布尔值进⾏与或运算时,Python会将其当做布尔值运算,最终会 返回原值
⾮布尔值与运算的规则
与运算是找False的,如果第⼀个值是False,则不看第⼆个值。如果第⼀个值是False,则直接返回第⼀个值,否则返回第⼆个值
⾮布尔值或运算的规则
或运算是找True的,如果第⼀个值是True,则不看第⼆个值。如果第⼀个 值是True,则直接返回第⼀个值,否则返回第⼆个值
- 条件运算符(三元运算符)
条件运算符在执⾏时,会先对条件表达式进⾏求值判断
如果判断结果为True,则执⾏语句1,并返回执⾏结果 如果判断结果为False,则执⾏语句2,并返回执⾏结果 语法: 语句1 if 条件表达式 else 语句2
- 运算符的优先级
- 条件控制语句
⼀.课程安排
⼆. 课程笔记
- 条件判断语句(if语句)
- input() 函数
- if-else语句
- if-elif-else 语句
- while语句
- 循环嵌套
- break和continue
⼀ .课程安排
课程作业
练习课堂中⽼师敲的代码 求1000以内所有的⽔仙花数
获取⽤户输⼊的任意数,判断其是否是质数?
⼆. 课程笔记
- 条件判断语句(if语句)
执⾏的流程:
if语句在执⾏时,会先对条件表达式进⾏求值判断,
如果为True,则执⾏if后的语句
如果为False,则不执⾏
语法:if 条件表达式 : 代码块
代码块代码块中保存着⼀组代码,同⼀个代码块中的代码,要么都执⾏要么 都不执⾏
代码块以缩进开始,直到代码恢复到之前的缩进级别时结束 代码块就是⼀种为代码分组的机制
input() 函数
该函数⽤来获取⽤户的输⼊
input()调⽤后,程序会⽴即暂停,等待⽤户输⼊
⽤户输⼊完内容以后,点击回⻋程序才会继续向下执⾏
⽤户输⼊完成以后,其所输⼊的的内容会以返回值得形式返回
- if-else语句
else :
代码块 执⾏流程:
if-else语句在执⾏时,先对if后的条件表达式进⾏求值判断
如果为True,则执⾏if后的代码块
如果为False,则执⾏else后的代码块)
if-elif-else 语句
1 value = 30000
2
3 if value >= 30000:
4
5 print(‘有钱任性’) 6
7 elif value >= 20000: 8
9 print(‘有钱真好’)
10
11 elif value >= 10000: 12
13 print(‘哥也⽉薪上万了’)
14
15 elif value >= 5000: 16
17 print(‘⼯资还说的过去’)
18
19 elif value >= 2000: 20
21 print(‘能养活⾃⼰了’)
语法:
if 条件表达式 : 代码块
elif 条件表达式 : 代码块
elif 条件表达式 :
代码块
……..
else :
代码块 执⾏流程:
if-elif-else语句在执⾏时,会⾃上向下依次对条件表达式进⾏求值判 | ||||
---|---|---|---|---|
断, | ||||
如果表达式的结果为True,则执⾏当前代码块,然后语句结束 | ||||
如果表达式的结果为False,则继续向下判断,直到找到True为⽌ | ||||
如果所有的表达式都是False,则执⾏else后的代码块 |
总结: if-elif-else中只会有⼀个代码块会执⾏
- while语句
循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
语法:
while 条件表达式 : 代码块
else:
代码块
- 循环嵌套
Python 语⾔允许在⼀个循环体⾥⾯嵌⼊另⼀个循环。
语法
- while 表达式:
- while 表达式:
- 代码块
- 代码块
5
- for 变量 in 循环规则:
- for 变量 in 循环规则:
代码块
代码块
8
9
break和continue
break 可以⽤来⽴即退出循环语句,包括else语句
continue ⽤来跳过当初循环
- 列表
⼀.课程安排
⼆.课堂笔记
- 序列(sequence)
- 基本概念
- 序列的分类
- 列表(list)
- 列表的使⽤
- 切⽚
- 通⽤操作
- 修改列表
- 列表的⽅法
- 遍历列表
- for循环
- range(start, stop[, step])
⼀.课程安排
课程作业
练习课堂中⽼师敲的代码
现在有 a = [1,2,3,4,5,6] 不通过函数的形式实现列表的反转
([6,5,4,3,2,1]) 并写出推导过程
给 ⽤户9次机会 猜1 - 10 个数字随机来猜数字。如果随机的数字和⽤户输⼊的数字⼀致则表示正确,如果不⼀致则表示错误。最终结果要求⽤户 怎么也猜不对
有两个列表 lst1 = [11, 22, 33] lst2 = [22, 33, 44]获取内容相同的元素
⼆. 课堂笔记
- 序列(sequence)
- 基本概念
序列是Python中最基本的⼀种数据结构。序列⽤于保存⼀组有序的数据,所有的数据在序列当中都有⼀个唯⼀的位置(索引)并且序列中的数据会按照 添加的顺序来分配索引
数据结构指计算机中数据存储的⽅式
- 序列的分类
可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)
- 列表(list)
列表是Python中的⼀个对象列表的作⽤
列表中可以保存多个有序的数据列表是⽤来存储对象的对象
- 列表的使⽤
列表的创建:通过[]来创建⼀个空列表
- 切⽚
切⽚是指从现有列表中获得⼀个⼦列表
通过切⽚来获取指定的元素 语法: 列表[起始 : 结束 : 步⻓]
通过切⽚获取元素时,会包括起始位置的元素,不会包括结束位置的元素
起始位置和结束位置的索引可以不写
如果省略结束位置, 则会从当前的开始位置⼀直截取到最后
如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结束的元素
如果开始位置和结束位置都省略, 则则会从第⼀个元素开始截取到最后⼀个元素
步⻓表示每次获取元素的间隔,默认是1(可以省略不写) 步⻓不能是0,但可以是是负数
- 通⽤操作
- 和
+ 可以将两个列表拼接成⼀个列表
可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)in 和 not in
in⽤来检查指定元素是否在列表当中
not in ⽤来检查指定元素是否不在列表当中
len() 获取列表中元素的个数
max() 获取列表中最⼤值min() 获取列表中最⼩值list.index(x[, start[, end]])
第⼀个参数 获取指定元素在列表中的位置第⼆个参数 表示查找的起始位置
第三个参数 表示查找的结束位置
list.count(x) 统计指定元素在列表中出现的个数
- 修改列表
通过切⽚来修改(起始就是给切⽚的内容重新赋值,但是赋值的内容必须是⼀
个序列)
当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致 通过切⽚来删除元素
del list[起始 : 结束] list = []
- 列表的⽅法
append() 像列表的最后添加⼀个元素
insert(arg1,arg2) 像列表指定位置插⼊⼀个元素 参数1:要插⼊的位置 参数
2:要插⼊的元素
extend(iterable) 使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递⼀个序列
pop() 根据索引删除并返回指定元素
remove() 删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)
reverse() 翻转列表
sort(key=None,reverse=False) ⽤来对列表中的元素进⾏排序 reverse:
True反序;False 正序
- 遍历列表
- for循环
通过for循环来遍历列表
- 语法
- for 变量 in 序列(遍历的规则):
- 代码块
注意: for循环的代码块会执⾏多次,序列中有⼏个元素就会执⾏⼏次。每执⾏
⼀次就会将序列中的⼀个元素赋值给变量,所以我们可以通过变量来获取列表 中的元素
range(start, stop[, step])
参数说明
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步⻓,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
- 元组&字典&集合
⼀.课程安排
⼆.课堂笔记
- 元组简介
- 字典简介
- 字典的基本介绍
- 字典的使⽤
- copye()
- 遍历字典
- 集合
- 集合简介
- 集合的运算
⼀. 课程安排
a = {“name”:”123”,”data”:{“result”:[{“src”:”python1”},
{“src”:”python2”},{“src”:”python3”}]}} 找 到python1/python2/python3
有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有⼤于66的值保存
⾄字典的第⼀个key中,将⼩于66值保存⾄第⼆个key的值中。
⼆.课堂笔记
- 元组简介
元组基本介绍
元组表现形式tuple
元组是⼀个不可变序列(⼀般当我们希望数据不改变时,我们使⽤元组,其他情况下基本都⽤列表)
使⽤()创建元素
元组不是空元组⾄少有⼀个 逗号(,) 当元组不是空元组时括号可以省略元组解包指将元组当中的每⼀个元素都赋值给⼀个变量
- 字典简介
- 字典的基本介绍
字典属于⼀种新的数据结构称为映射(mapping) 字典的作⽤和列表类似,都是⽤来存储对象的容器
列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
在字典中每⼀个元素都有唯⼀的名字,通过这个唯⼀的名字可以找到指定的元素
这个唯⼀的名字我们称之为key 通过key可以快速查询value 也可以称之为值字典我们也称之为键值对(key-value)结构
每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item) 创建⼀个有数据的字典 语法 {key:value}
字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple )
字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的
- 字典的使⽤
dict()函数来创建字典
get(key[,default]) 根据键来获取字典的值。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
update() 将其他字典的key-value添加到当前的字典当中
del 删除字典中的key-value
popitem() 删除字典最后的⼀个key-value 这个⽅法是有返回值的。删除之后它会将删除的key-value作为返回值返回
pop(key[,default]) 根据key删除⾃定中的value。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
copye()
copy() ⽅法⽤来对字典进⾏潜复制
注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进⾏复制的
- 遍历字典
我们主要可以通过3种⽅式对字典进⾏遍历
keys() 该⽅法返回字典所有的key
values() 该⽅法返回⼀个序列 序列中保存有字典的值
items() 该⽅法会返回字典中所有的项 它返回⼀个序列,序列中包含有双值
⼦序列 双值分别是 字典中的key和value
- 集合
- 集合简介
集合表现形式set 集合和列表⾮常相似不同点
集合只能存储不可变对象
集合中存储的对象是⽆序的集合不能出现重复元素
使⽤{}来创建集合
可以通过set()来将序列和字典转换成集合
len() 使⽤len()来获取集合中元素的数量
add()像集合中添加元素
update()将⼀个集合中的元素添加到另⼀个集合当中
pop()随机删除集合中的⼀个元素⼀般是删除最后⼀个元素
remove() 删除集合中指定的元素
clear() 清空集合
- 集合的运算
& 交集运算
| 并集运算
- 差集运算
^ 亦或集
<= 检查⼀个集合是否是另⼀个集合的⼦集
< 检查⼀个集合是否是另⼀个集合的真⼦集
>=检查⼀个集合是否是另⼀个集合的超集
>检查⼀个集合是否是另⼀个集合的真超集
- 函数⼀
⼀.课程安排
⼆.课堂笔记
t. 函数简介
- 函数的参数
2.t 形参和实参
2.2 函数的传递⽅式
- 不定⻓参数
- 参数的解包
⼀. 课程安排
课程作业课堂代码练习,笔记总结
课程内容
- 函数简介
- 函数的参数
- 不定⻓参数
- 参数的解包
⼆.课堂笔记
- 函数简介
函数也是⼀个对象
函数⽤来保存⼀些可执⾏的代码,并且可以在需要时,对这些语句进⾏多次 调⽤
- 语法
- def 函数名([形参1,形参2,形参3 ]):
- 代码块
注意:
函数名必须符合标识符的规范(可以包含字⺟、数字、下划线但是不能以数字开头)
print是函数对象 print()是调⽤函数
- 函数的参数
形参和实参
形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值实参(实际参数)指定了形参,那么在调⽤函数时必须传递实参,实参将会赋值 给对应的形参,简单来说有⼏个形参就要有⼏个实参
- 函数的传递⽅式
定义形参时,可以为形参指定默认值。指定了默认值以后,如果⽤户传递了参
数则默认值不会⽣效。如果⽤户没有传递,则默认值就会⽣效
位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参
关键字参数 : 关键字参数可以不按照形参定义的顺序去传递,⽽根据参数名
进⾏传递
混合使⽤位置参数和关键字参数的时候必须将位置参数写到关键字参数前⾯ 去
- 不定⻓参数
定义函数时,可以在形参前⾯加⼀个,这样这个形参可以获取到所有的实
参,它会将所有的实参保存到⼀个元组中
带号的形参只能有⼀个,可以和其他参数配合使⽤
形参只能接受位置参数,不能接受关键字参数
*形参可以接收其他的关键字参数,它会将这些参数统⼀保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值
形参只有⼀个,并且必须写在所有参数的后⾯
- 参数的解包
传递实参时,也可以在序列类型的参数前添加星号,这样它会⾃动的将序列
中元素依次作为参数传递
要求序列中的元素的个数必须和形参的个数⼀致
- 函数⼆
⼀.课程安排
⼆.课堂笔记
t. 函数的返回值
- ⽂档字符串
- 函数的作⽤域
- 命名空间
- 递归函数
⼀. 课程安排
作业
课程作业课堂代码练习,笔记总结
定义⼀个函数,⽤来检查⼀个任意的字符串是否是回⽂字符串,如果是返回True,不是返回False。回⽂字符串从前往后念和从后往前念是⼀样的。例如 TNT
课程内容
- 函数的返回值
- ⽂档字符串
- 函数的作⽤域
- 命名空间
- 递归函数
⼆.课堂笔记
- 函数的返回值
返回值就是函数执⾏以后返回的结果通过return来指定函数的返回值
return后⾯可以跟任意对象,返回值甚⾄可以是⼀个函数
- ⽂档字符串
help()是Python中内置函数,通过help()函数可以查询Python中函数的⽤法
在定义函数时,可以在函数内部编写⽂档字符串,⽂档字符串就是对函数的 说明
- 函数的作⽤域
作⽤域(scope)
作⽤域指的是变量⽣效的区域在Python中⼀共有两种作⽤域
全局作⽤域
全局作⽤域在程序执⾏时创建,在程序执⾏结束时销毁所有函数以外的区域都是全局作⽤域
在全局作⽤域中定义的变量,都是全局变量,全局变量可以在程序的 任意位置进⾏访问
函数作⽤域
函数作⽤域在函数调⽤时创建,在调⽤结束时销毁函数每调⽤⼀次就会产⽣⼀个新的函数作⽤域
在函数作⽤域中定义的变量,都是局部变量,它只能在函数内部被访 问
- 命名空间
命名空间实际上就是⼀个字典,是⼀个专⻔⽤来存储变量的字典
locals()⽤来获取当前作⽤域的命名空间
如果在全局作⽤域中调⽤locals()则获取全局命名空间,如果在函数作⽤域中 调⽤locals()则获取函数命名空间
返回值是⼀个字典
- 递归函数
递归是解决问题的⼀种⽅式,它的整体思想,是将⼀个⼤问题分解为⼀个个
的⼩问题,直到问题⽆法分解时,在去解决问题递归式函数有2个条件
- 基线条件 问题可以被分解为最⼩问题,当满⾜基线条件时,递归就不执⾏了
- 递归条件 可以将问题继续分解的条件
10 - 函数三
⼀.课程安排
⼆. 课堂笔记
- ⾼阶函数
- 闭包
- 装饰器的引⼊
- 装饰器的使⽤
⼀. 课程安排
作业
把最近讲的函数这⼀章总体的复习⼀遍
课程内容
- ⾼阶函数
- 闭包
- 装饰器的引⼊
- 装饰器的使⽤
⼆. 课堂笔记
- ⾼阶函数
接收函数作为参数,或者将函数作为返回值返回的函数就是⾼阶函数
- 闭包
将函数作为返回值也是⾼阶函数我们也称为闭包闭包的好处
通过闭包可以创建⼀些只有当前函数能访问的变量
可以将⼀些私有数据藏到闭包中
⾏成闭包的条件函数嵌套
将内部函数作为返回值返回
内部函数必须要使⽤到外部函数的变量
- 装饰器的引⼊
我们可以直接通过修改函数中的代码来完成需求,但是会产⽣以下⼀些问题
如果修改的函数多,修改起来会⽐较麻烦不⽅便后期的维护
这样做会违反开闭原则(ocp)
程序的设计,要求开发对程序的扩展,要关闭对程序的修改
- 装饰器的使⽤
通过装饰器,可以在不修改原来函数的情况下来对函数进⾏扩展
在开发中,我们都是通过装饰器来扩展函数的功能的