-
和python的第一次亲密接触
-
编程语言的分类
-
按编程语言的类型划分
-
1、编译型和解释型
- 编译型
- 2、动态语言和静态语言
- 3、强类型定义语言和弱类型定义语言
-
常用的算术操作符
- 1、//:返回商
int类型
-
第九课:了不起的分支和循环3
-
分支:if
if是条件语句
-
了不起的分支和循环
-
打飞机框架
- 加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生
interval = 0
while True:
if 用户是否点击了关闭按钮:
退出程序
interval += 1
if interval == 50:
interval = 0
小飞机诞生
小飞机移动一个位置
屏幕刷新
if 用户鼠标产生移动:
我方飞机中心位置 = 用户鼠标位置
屏幕刷新
if 我方飞机和小飞机发生肢体冲突:
我方挂,播放撞机音乐
修改我方飞机图案
待机“Game over”
停止背景音乐,最好淡出
-
elif的使用技巧
- secret = input ('请输入一个分数:')
secore = int(secret)
if secore >= 90 and secore <=100:
print('A')
if secore >= 80 and secore <90:
print('B')
if secore >= 60 and secore <90:
print('C')
if secore < 60:
print('D')
if secore <0 or secore > 100:
print('输入错误')
#假如输入一个90 经过第一个if的判断后还会经过第二个if的判断
#因为if条件语句都是平行的并立的,所以还会往下执行
#所以往后的几次判断都是不必要的
- temp = input('请输入一个分数:')
secore = int(temp)
if 90 <= secore <= 100:
print('A')
else:
if 80 <= secore < 90:
print('B')
else:
if 60 <= secore <80:
print('C')
else:
if 0 <= secore < 60:
print('D')
else:
if 0>secore or secore >100:
print('输入错误')
- temp = input ('输入一个分数:')
secore = int(temp)
if 90 <= secore <= 100:
print('A')
elif 80<= secore <90:
print('B')
elif 60 <= secore <80:
print('C')
elif 0 <= secore < 60: #相当于else if
print('D')
else:
print('输入的分数超出范围')
#当我们第一次输入的一个数字是98 就不需要再执行后面的语句,只
#有第一个条件不成立的时候才会执行后面的语句elseif和else
#所以加入一个判断消耗 一个cpu的话那么 第一个eight比后面连个
#会多消耗400%的CPU
-
python可以有效避免使用悬挂else
- 导致else归属哪个if归属不清楚
而在python中则不会有这个顾虑
-
条件表达式(三元操作符)
- 赋值号周围有几个数就是几元操作符
- 当减号当做符号使用的时候就是一元操作符
- 二元操作符
- 三元操作符
- 当if条件后面为真的时候返回x值并赋值给small
当if条件后面为假的时候返回y值并赋值给small
-
断言(assert)
- assert这个关键字我们称之为‘‘断言’,当这个
关键字后面的条件为假的时候,程序会自动崩溃
并抛出AssertionError的异常
-
课后习题
-
1、赋值互换
-
2、三元操作符
-
3、成员资格运算符
-
4、三元操作符的实践
- x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
- small = x if (x < y and x < z) else (y if y < z else z)
-
循环
-
循环的类型和控制语句
-
循环:while
-
当条件成立时一直执行循环语句
直到while后的条件不成立退出循环
- while:条件符合的时候执行循环
- while中的continue:继续循环
- while中的break:退出循环
- 如果条件判断语句永远为 true,
循环将会无限的执行下去,如下实例:
- 循环使用 else 语句
在 python 中,while … else 在循环条件为
false 时执行 else 语句块:
-
循环:for
-
语法
- for 目标 in 表达式
循环体
- range和for配合使用
狼狈为奸
例如:range(1,5)表示1,2,3,4
- len的作用:
是计算传入
的字符数
并返回字符
数
-
第十课:列表-一个打了激素的数组1
- 数组:就是把一堆同种类型的数据挨个摆在一起,
然后通过数组的下标进行索引
数组有个基本的要求,就是你放在的数据那必须数据类型要一致
- 列表:由于python的变量没有数据类型,按照这个节奏来说,python是没有数组的
但是python加入了更为强大的列表
-
创建一个列表
- 创建一个普通列表
- 创建一个混合列表
- 创建一个空列表
-
创建列表脚本
-
向列表添加元素:
使用append()函数
-
append()函数的调用为什么是
membe.append?
- 1、member后的一个点可以理解为范围
- 2、append()这个方法,函数
在对象里面把属于对象的函数称之为方法,
append()的这个方法是属于member这个列表的方法
-
extend()函数调用的是
插入列表
-
insert()有两个参数:
第一个参数代表在列表中的位置
第二个参数表示在第一个参数的位置插入
一个参数
- 为什么程序中是从0开始不是从1开始?:
因为计算机是二进制,只有0和1
所以基本所有的程序语言都是从0开始计数
- 如果我们把数组比作一个集装箱
那么列表就是一个仓库
-
第十一课:列表一个打了激素的数组2
-
1、从列表中获取元素
-
1、跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素
注意列表索引值是从0开始的
-
2、从列表中删除元素
-
remove()表示从数组转中删除元素
-
3、从列表中取出一个值并返回
-
python中的列表事实上是利用栈这种数据结构存储的
pop()方法是从列表中取出最后一个元素,并返回给你
-
4、列表分片(slice)
-
利用索引值我们每次可以从列表获取一个元素,但是我们总是贪心的
,如果一次性需要获取多个元素,有么有办法实现呢?利用列表分片,
我们可以简单地实现这个要求
-
第十二课:列表一个打了激素的数组3
-
1、列表的一些常用操作符
-
1、比较操作符
-
2、逻辑操作符
-
3、链接操作符
-
4、重复操作符
-
5、成员关系操作符
-
2、列表的小伙伴们:
简单来说就是列表的
内置函数bif
-
count():
计算列表中某个元素出现的次数
-
index():
中文是索引的意思
-
reverse():
元素翻转,以中轴线对称翻转
-
sort():
排序dif,从小到大排序
-
列表切片和赋值的不同
-
第十三课:元组,戴了枷锁的列表
- 定义:元组只要定义了类型就是不可以再改变元组类型
-
元组的操作
- 1、创建和访问一个元组
- 2、更新和删除一个元组
-
3、元组的相关操作符
- 1、拼接操作符
- 2、重复操作符
- 3、关系操作符
- 4、逻辑操作符
- 5、成员资格运算符
-
性质
- 1、元组性质和列表相近,但是元组不可以增删
-
2、元组的标志是带有逗号的一个数组,但是空的元组是括号括着就行
-
3、元组的复制
-
第十四课:各种奇葩的内置方法
-
1、也可以对字符串进行切片操作
- \n:表示换行符,后面加斜巷叫做续行符,要在使用一对引号情况下换行,
就要在后面加上这个,或者用多对引号实现换行
\t:表示制表符tab建,有助于美观
-
第十五课:字符串的格式化
- 字符串的格式化意义:字符串的格式化是为了规范字符串的规范化
-
"{0} love {1}.{2}".format("I","FishC","com")
'I love FishC.com'
>>> #format 格式化字符串,起到格式化的作用,就是给字符串确定一个规定的格式,按照固定的格式来填充字符
>>> #以上是位置参数
>>> "{a} love {b}.{c}".format(a="I",b = "FishC",c = "com")
'I love FishC.com'
>>> #以上是关键字参数,用变量格式化字符串
>>> "{0} love {b}.{c}".format("I",b = "FishC",c = "com")
'I love FishC.com'
>>> "{a} love {b}.{2}".format(a="I",b = "FishC", "com")
SyntaxError: positional argument follows keyword argument
>>> #注意位置参数和关键字参数一起使用的时候位置参数一定在关键字参数之前不然会报错
>>>
-
格式化符号和转义符:
-
第十六课:序列,序列
-
1、列表、元组和字符串的共同点
- ——都可以通过索引得到每个元素
——默认索引值都是从0 开始
——可以通过分片的方法得到一个范围内的元素的集合
——有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符等)
-
2、转换
-
list:字符串、元组转换为列表
-
tuple([iterable]):把一个可迭代的对象转换为元组
-
str:str(obj)把对象转换为字符串
- len:len(sub),返回一个字符的长度
-
max:max方法是返回序列或则参数集合中的最大值
-
min:min()返回序列或参数集合中的最小值
和max方法类似
- # 使用max或者min方法的数据类型
必须都是统一的,可以都是字符,
可以全部地整数
-
sum:sum()方法
- sorted:sorted()排序方法
-
第十七课:函数-python的乐高积木
我们需要找一个方法为我们的代码找到组织
- 函数
- 对象
- 模块
-
1、函数
固定模块的打包
-
函数用def来定义:
def定义一个函数是怎么样的
——函数后面一定一个小括号
——函数后面也有一个冒号
——冒号后面是函数的执行体
——调用函数,写出函数的名字再写上小括号就可以了
-
函数的调用过程
- 1、函数发生调用的时候就会往上寻找
2、找到函数的def创建过程
3、然后依次执行函数的定义过程
-
函数的参数的意义
-
函数的参数的使用方法
函数的参数可以不止一个
- 还可以用一个返回值来代替
- 是python的基础
也是python的重中之重
-
第十八课:函数-灵活即强大
-
形参和实参
- def MyFirstFunction(name):
函数定义过程中的name是叫形参
因为Ta只是一个形式,表示暂居一个参数的位置
print(‘传递进来的’+ name + 叫做实参,因为他是具体的参数值)
MyFirstFunction(‘小甲鱼’)
传递进来的小甲鱼叫做实参,因为他是具体的参数值
-
函数文档
-
关键字参数
-
默认参数:
默认参数是定义了默认值的参数
-
收集参数:
又叫做可变参数
- 有收集参数的时候:
其他参数可以设定为默认参数
或则关键字参数才不容易出错
-
第十九课:函数-我的地盘听我的
-
函数和过程
- 函数(Function):是有返回值
意味着函数做完事情必须写报告
- 过程(procedure):是简单的,特殊并且没有返回值的
过程做完事情可以直接拍拍屁股走人
-
python只有函数没有过程
-
局部变量(local variable)
全局变量(global variable)
-
第二十课:内嵌函数和闭包
-
在函数体内修改
全局变量
-
内嵌函数
内部函数
-
闭包
-
python中闭包从表现形式上定义为:
如果在一个内部函数里对外部作用域的变量进行引用
达到这两点需求,那么久成为这个内部函数为闭包
-
print()和
return的区别
-
第二十一课:lambda函数
-
lambda函数的使用方式
-
lambda函数的作用
- 1、在python写一些执行的脚本时候,使用lambda就可以省下定义函数的过程,
比如说我们只是需要写个简单的脚本来管理服务器的时间,我们就不需要专门定义一个函数后再调用,使用lambda就可以使得代码更加精简。
2、对于一些比较抽象并且整个程序执行下来只需要调用一次两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题。
3、简化代码的可读性,由于普通的屌丝函数月度经常要跳到开头 def 定义部分,使用lambda 函数可以省去这样的步骤。
-
两个牛逼的bif
- filter内置函数:
是代表过滤器的作用
- map内置函数:
是代表映射作用
-
实例