python开发基础——day10 复习2

一、复习

流程控制语句

三大执行方式:

1.顺序执行:程序从上往下依次执行

2.选择执行:根据条件满足与否,循环执行对应的代码

以上提到的条件满足,都是基于bool来判断

if 选择执行/分支语句

分支语句分为三种:

1.单分支--if--如果满足if条件就执行对应代码 否则无事发生

if 判断条件:

执行语句

age=20

if age>=18:

print('成年')

2.双分支--如果满足if条件就执行对应代码 否则执行else里的代码

if 判断条件:

执行语句

else:

执行语句

age=16

if age>=18:

print('成年')

else:

print('未成年')

3.多分支--如果满足if条件就执行if里的代码,不满足就接着执行是否满足elif的代码,满足就执行elif的代码,都不满足 执行else里的代码

if 判断条件:

执行语句

elif 判断条件:

执行语句

else:

执行语句

num=38

if num>30:

print('好好好')

elif num>20:

print('哈哈哈')

elif num>10:

print('嘻嘻嘻')

else:

print('呜呜呜')

一组分支里面,if和else只能有一个,elif可以有多个

if还有个特性。判断的条件非零有值为真。空值为假(零和空值:None,set(),[],(),'',{},0,0.0)

num2=''

if num2:

print('hh')

else:

print('ww')

流程空值语句中代码的概念,通过tab缩进来控制,一般一个tab是四个空格

循环语句:判断条件是否满足,如果满足条件就循环执行,不满足结束循环

死循环,一直执行,不会结束的循环

最简单的死循环-->while True

while循环:

语法:

while 循环判断条件:

执行语句

更新语句 #如果你条件不更新,那就会一直死循环

num3=1

while num3<=10:

print(666)

num3+=1

for循环:在(1)循环次数已知 (2)遍历数据 都比while更高效

遍历数据:

语法:

for 变量 in 可迭代对象:#可迭代对象目前理解为有多个值的数据即可,变量一般取名为i

执行语句

talk='老师说要好好学习天天向上'

for i in talk:

print(i)

for 变量 in range(数值):

执行语句

for i in range(10): #0-9

print(i)

for i in range(5,10): #5-9

print(i)

for i in range(5,10,2): #579

print(i)

range的起点默认为0,终点到前一位

break--直接结束循环

continue--跳过本次循环

break和continue一般结合if来使用,如果满足条件就选择结束循环或者跳过循环

pass--当流程控制/函数里面不写内容就会报错,所以先写个pass,表示跳过

序列类型方法:

方法有很多,要用的时候根据需求去查就行

1.列表的方法中,增删改直接写就行,不需要print包裹方法进行输出

2.元组只有查询方法,所以元组的内容都是要结合print包裹方法进行输出

3.字符串的数据是不可变的,所以字符串的所有方法都是要结合print包裹方法进行输出

用的比较多的方法:

append--列表追加数据

insert--列表插入数据

index--查询数据下标

replace--字符串修改数据

散列类型:

1.可以存储多个数据

2.里面的数据没有顺序概念(没有下标)

3.数据不能重复

set-->集合,表现形式为用大括号包裹起来的数据,里面的数据用逗号隔开,集合里不会存储重复数据

集合可以用来进行简单的逻辑运算:

&交集(两个集合里共有的元素)

|并集(两个集合里所有的元素)

-差集(两个集合里,独有的元素)

集合主要用来数据去重和进行简单的逻辑运算

dict --> 字典,表现形式为用大括号包裹起来的数据,里面的数据以键值对的方式来存储,用逗号隔开,字典里面是不会存重复的键

键值对: 键:值

info={

'name':'张三',

'age':18,

'sex':'男'

}

print(info)

字符的输出方式是通过键名输出

字典名[键名] #输出键值

print(info['name'])

字典名[键名] = 值 #修改键得值 info['sex']='女'

print(info)

函数(function):

函数的概念就是把一些用到的代码保存起来,取个名字,以后要用功能时,直接调用即可

函数的使用分为两步:1定义 2使用

定义函数:

<1>定义一个普通函数

def 函数名():

代码

def fun():

print('好好学习')

fun()

<2>定义一个空函数

def 函数名():

pass

def fun2():

pass

<3>定义一个带返回值的函数

def 函数名():

return 返回值

def fun4():

return 123

<4>定义一个带参函数

def 函数名(参数):

代码

def fun4(name):

print(f'{name}要好好学习')

调用函数:

1.直接调用函数

函数名()

fun()

2.输出返回值 /函数内存地址

print(函数名()) #输出返回值

print(fun4())

print(函数名) #输出函数内存地址

print(fun4)

函数参数:

形参:没有具体的值,只是先占个位置--定义时

实参:有具体的值,在调用会取代形参运行--调用

<1>必备参数-- 形参,实参数量要一致

def fun5(a,b):

print(a,b)

fun5(5,6)

<2>默认参数--在定义形参时,就给里面的变量赋值,就可以不用传参,赋值只能给右边的数据赋值

def fun6(age,name='伊尔'):

print(age,name)

fun6(18)

fun6(19)

fun6(19,'张三')

<3>不定长参数1-- 在不清楚要接收几个数据的情况下可以用它,一次性接受多个数据,接收到的参数数据类型为元组类型,表现形式为:*,参数名直接一般取名为*args

def fun7(*args):

print(args)

print(type(args)) #<class 'tuple'>

fun7(1,2,5,6,'伊尔')

<4>不定长参数2 -- 在不清楚要接收几个数据的情况下可以用它,一次性接受多个数据,传参的时候以键=值的方式进行传参,接收到的参数数据类型为字典类型,表现形式为:**,参数名直接一般取名为**kwargs

def fun8(**kwargs):

print(kwargs)

print(type(kwargs)) #<class 'dict'>

fun8(name='伊尔',age=18,sex='女')

return返回值:

一个数据如果使用print,那就是作为输出,只能看,不能用

所以一个函数里的数据想被继续使用,就是通过return的方式,把他返回出去

返回值的默认值为None,空

return后的代码是不会运行

返回值的数量/类型是不限制的,返回值有多个的时候得到的数据类型为元组类型

文档字符串:

写在函数里的注释,他可以被调用,里面写的是函数的相关说明/参数/返回值说明

def 函数名():

'''

文档字符串

'''

可以通过函数名.__doc__的方式输出

二、高内聚低耦合

练习要求把加减乘除写成4个函数,为什么要分开写,我把加减乘除写到一个函数里不行么?-->避免一个错,全部错

我把加减乘除函数都写在一个函数里,然后里面的除法功能出错了,我这一整个函数都不能用了

把加减乘除函数分开写在4个函数里:

1.谁出了问题我更好的定位解决

2.出问题了,可以先把他注释,也不会影响其他的函数

专注做好一件事,彼此联系不要过于紧密

高内聚-->一个程序/函数做的事情尽量统一/专一,一个函数做好一个功能就好,而不是一个函数里写一堆的功能,容易一个错,全部错

低耦合-->程序与程序,函数与函数之间的关联不要太密切,各做各的,避免一个错,全部错

相关推荐
Juchecar16 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805116 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_16 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django
每日AI新事件1 天前
python的异步函数
python
这里有鱼汤1 天前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python