Python基础
流程控制介绍:计算机执行代码的顺序就是流程,对计算机代码执行顺序管理就是流程控制,流程控制一共分为三类:
1、顺序结构
2、分支结构/选择结构
3、循环结构
一、python的分支结构
1、单项分支(顺序结构)
2、双项分支(选择结构)
3、多项分支(循环结构)
4、巢状分支
1、单项分支(顺序结构)
特征:
if条件表达式为真,则执行if之后所控制的代码组,如果为假,则不执行后面的代码组
if后面的代码是在条件表达式为真的情况下执行,所以称之为真区间或者if区间
print(”开始“)
if true #如果判断的值是假,否则不执行
print(‘’选择性语句“)
print("结束")
2、双向分支(选择结构)
特征:双向分支有2个区间,分别是True控制的if区间和False控制的else区间(假区间)
print("start")
num = int(input("请输入您的成绩"))
if num>=60:
print("成绩及格")
else:
print("成绩未及格")
print("end")
3、多分支结构(选择结构)
特征:
多项分支结构可以添加无限个elif分支,无论如何只会执行一个分支
执行完一个分支后,分支结构就会结束,后面的分支都不会判断也不会执行
多项分支的判断顺序是自上而下逐个分支进行判断
else可以没有
在python中没有switch -case语句
#多向分支结构
print("-start-")
num = int(input("请输入一个成绩:"))
if num>=90:
print("成绩优秀")
elif num>=75:
print("成绩良好")
elif num>=60:
print("通过测试")
else:
print("未通过测试")
print("-end-")
4、巢状分支(选择结构)
巢状分支是其他分支结构的嵌套结构,无论哪个分支都可以嵌套
#巢状分支结构
print("start")
num = int(input("请输入您的成绩:"))
if num >=75:
if num>=90:
print("成绩优秀")
else:
print("成绩良好")
else:
if num>=60:
print("成绩及格")
else:
print("成绩不及格")
print("end")
循环结构
1、while循环
while循环中的else是在while条件表达式为假的情况下执行的代码内容,一般用于判断起始条件是否为假等相关操作
死循环是不会终止的循环,通过将用于判断的条件表达式设置为永远True来实现
#循环输出1~10的值
print("循环开始")
i = 1
while i <= 10:
print(i)
i = i + 1
print("循环结束")
while无限循环
print("程序开始")
while True: #先设置while的判断条件永远为真
a = input("请输入字母") #从键盘获取一个值
if a == q: #设置循环结束条件
break #当条件满足,循环结束
print("程序结束")
2、for循环(用于遍历数据)
特征
for…in…用于遍历容器类的数据(字符串,列表,元组,字典,集合)
for 变量 in 容器:
python代码,可以在此使用变量
for i in "abcd"
print("i")
又:
for 变量1,变量2 in 容器:
python代码,可以在此使用变量1和变量2
2.1、配合range和 len的使用
for i in range(10,2,-2):
print(i)
配合len使用
a=["aaa","bbb","ccc"]
for i in range(len(a)):
print(i,"=>",a[i])
2.2、输出九九乘法表
for j in range(1,10):
for i in range(1,j+1):
print("{}*{}={:<4}".format(i,j,i*j),end=" ")
print("")
3、break和continue跳出循环
for i in range(10):
if i == 6:
break #结束整个循环
continue #结束单次循环
输出的结果:
break
1 2 3 4 5
continue
1 2 3 4 5 7 8 9
3.1、数据查找功能
通过for循环比对一个值是否在一组数据中
a=[10,20,30,40]
m=10
for i in a:
if m == i:
print("存在")
break
else:
print("不存在")
print("end")
以上输出的结果为:存在
如果m的值为100,输出的结果为不存在
函数定义
一、要点:
1、函数代码块必须以def开头(defined)关键字开头,后接函数标识符名称和圆括号。
2、任何传入参数的自变量必须放在圆括号中,圆括号之间可以用于定义参数
3、函数的第一行语句可以选择性的使用文档字符串,用于存放函数的说明
4、函数内容以冒号起始,并且缩进
5、return[表达式]结束函数,选择性的返回一个值给调用方。不带表达式的return相当于返回None。
二、基本格式
注意:函数名命名规则和变量基本一样。
def 函数名():
函数功能代码…
#调用函数
函数名()
三、函数定义分类
函数定义分类有6大类,分别是:基本函数格式、带有参数的函数格式、带有默认值的参数、关键字参数、收集参数(带)、多种参数混合
3.1、基本函数格式
del aa():
print("Hello Word")
aa()
3.2、带有参数的函数格式
def 函数名(参数,参数…):
函数的功能代码…
函数名(参数,参数…)
注意:
形参:形式上的参数,如上def 函数名()括号里面的是形参,形式上的参数
实参 :实际上的参数,调用函数时()里面的参数是实参
实参将值传递给形参的过程本质上就是简单的变量赋值,参数需以正确的顺序传入函数。调用时的数据必须和声明时的一样。
def aa(m1,m2): #函数定义
print(m1+m2) #函数功能
aa(3,5) #函数调用
以上运行结果为:8
3.3、带有默认值的参数
def 函数名(形参=默认值,形参=默认值,…):
函数的功能代码…
#函数调用方法
函数名() #调用函数时所有形参采用默认值操作
函数名(实参,实参…) #调用时形参采用实参的值,而抛弃默认的值
注意
在此情况下,使用实参值覆盖原有形参的默认值,本质上是变量的重新赋值操作
调用函数时,如果没有传参数,则会使用默认值。
def aa(name="zhangsan",age=25,sex="man"):#定义函数
print("姓名:{}:年龄:{}:性别:{}".format(name,age,sex))#函数功能
aa()#调用函数,不传参数
aa("lisi",45,"women")#调用函数,传参数
函数运行结果:
3.4、带关键字的参数函数
def 函数名(形参=默认值,形参=默认值,…):
函数的功能代码…
#调用函数
函数名(形参=实参,形参=实参…)#
注意
关键字参数就是调用函数时,在实参前面制定形参的做法,为了防止参数按照默认位置传递出现的错误
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为python解释器能够用参数名匹配参数值。
def aa(name="zhangsan",age=25,sex="man"):#定义函数
print("姓名:{}:年龄:{}:性别:{}".format(name,age,sex))#函数功能
aa(age=24,sex="girl",name="wangjuan")#实参顺序可以与声明不一致,强行制定形参与实参的
对应关系
关键字参数运行结果
3.5、收集参数(带*)
3.5.1、非关键字收集参数
def 函数名(*参数名):
函数功能代码…
#调用函数
函数名(实参,实参…) #没有数量限制
注意
非关键字收集参数,在形参前面加一个*即可
非关键字收集参数收集实参组成一个元组
非关键字收集参数,仅收集没有任何形参接受的非关键字实参
非关键字收集参数和普通的形参可以共存
def aa(*org):#在形参前面加*
print(org)
aa(10,14,20,34)#数量没有限制
参数运行结果
可以利用关键字收集参数求,一组数据的累加值
def aa(*org):#在形参前面加*
total=0
for i in org:
total += i
print("累加值是:",total)
aa(10,20,)#数量没有限制
计算的结果是:30
3.5.2、带关键字收集参数
def 函数名(**形参名):
函数功能代码…
#函数调用
函数名(形参=实参,形参=实参…)没有数量限制
注意
关键字收集参数,在形参前面加两个*
关键之收集参数,收集的结果组成一个字典,关键字成为字典的键,实参成为值
关键字收集参数,仅收集没有任何形参接受 的关键字参数
关键字参数可以和普通形参共存
#带关键字收集参数
def aa(**org):
print(org)
aa(name="zhangsan",age=25,sex="man")
代码执行结果