实参(实际参数): 实际函数执行的时候的参数 当调用函数的时候给定的参数值 100 1
形参(形式参数): 作用是用来接受实参 定义在函数小括号中 a b
缺省参数: 当我们不给定的参数时默认的参数 QQ邮箱 默认的邮箱名称 qq号@qq.com
"""
定义一个加法函数 数字1 数字2 结果
def add(a,b):
result = a + b;
print(result)
add(1,100) #结果 101
定义参数的缺省值
def personInfo(name,age=18):
print("%s的年龄是%d岁"%(name,age))
给定年龄 按照给定的走
personInfo("柴志杰",6)
不给定年龄 使用的缺省值 也就是默认值18
personInfo("柴志杰")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
可变参数: 我们不确定参数的个数
一:元组类型
二:字典类型
"""
定义一个不管多少个数字都可以进行相加的函数 param表示入参的一个元组
第一种:元组类型
def addCount(*param):
print(type(param))
sum = 0
for num in param:
sum+=num
print("计算的和为%d"%sum)
addCount(7,8)
print("==========")
addCount(1,2,3,4,5,6)
第二种:字典类型
def distPrint(**args):
print(args)
distPrint(name="admin",age=18,address="北京")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
求: 定义一个函数,定义一个字符串,计算子串出现的次数,并打印出来
分析:
1.函数的参数:两个字符串
2.计算子字符串在父字符串中出现的次数 并打印
"""
strPar = "abcdefabcdefaaa"
strSon = "aaa"
def countStr(strPar,strSon):
# 计算次数
count = strPar.count(strSon)
print(count)
countStr(strPar,strSon)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
需求:定义一个函数,要求能够获取字符串中后10个字符,并打印出来
分析:
1.函数的入参 一个字符串
2.要截取字符串的后10位
3.打印截取内容
"""
def subStrF(strN):
# 判断 如果字符串大于10位
if len(strN)>10:
print(strN[len(strN)-10:])
# 不到10位 直接打印
else:
print(strN)
subStrF("1234567890abc")
subStrF("abc")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
中断循环有两个关键字:break continue
"""
while True :
strH = input("请输入信息")
if strH == "quit": # quit exit单词都是退出的意思
break
"""
"""
循环嵌套下的中断
while True:
for i in range(0,5):
print("内循环")
break # break 只中断当前所在的循环 也就是内循环for
break
print("外循环执行")
"""
flag = False
while True:
for i in range(0,5):
strH = input("请输入指示")
if strH == "quit":
flag = True
break # break 只中断当前所在的循环 也就是内循环for
if flag:
break
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
问题 列表中存在用户 但是删除的时候一直提示该用户不存在
userList = [{"username":"admin","password":"123456"},{"username":"root","password":"123456"},{"username":"teacherLiu","password":"123456"}]
username = input("请输入用户名")
flag = True
for user in userList:
判断用户名是否存在 如果存在则删除
if user["username"] == username:
userList.remove(user)
print("该用户已被删除")
flag = False
if flag :
print("该用户不存在")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
函数:
1.python内置函数 print() len() str()...
2.自定义函数
函数又叫方法
"""
list = ["a","b","c"]
for c in list :
print(c)
list1 = ["d","e","f"]
for c in list1 :
print(c)
通过函数解决 定义一个函数 :遍历列表
def forList(paramList): #param 参数
for c in paramList :
print(c)
调用函数
forList(list)
forList(list1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
函数格式: def 函数名称(参数):
函数体
注意:函数不被调用 则不会执行
"""
eat表示函数名称 无参数
def eat():
# 函数体:输出 大家去吃肉
print("中午 大家去吃肉!")
调用函数
eat()
1
2
3
4
5
6
7
8
9
10
11
12
主函数可以调用其他函数
其他函数不可以调用主函数
问题:两个自定义函数 可不可以相互调用?
结论:
1.方法可以调用其他方法
2.函数不可以相互调用
"""
def A():
print("这是A方法")
B()
def B():
print("这是B方法")
if __name__=="__main__":
A()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
阶乘: 求10的阶乘 1098....*1
需求: 定义一个函数可以求出指定数字的阶乘
分析:
1.入参:是一个指定数字
2.有返回值 就是该数字的阶乘
"""
def getMultipy(num):
result = 1;
for i in range(1,num+1):
result *= i
return result
print(getMultipy(5))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
主函数(main): 程序的入口 内置
特点:
1.主函数中的程序会被运行
2.名称是固定的
3.主函数可以调用其他函数 但是其他函数不能调用主函数
格式:
if __name__ == "__main__": 注意:下划线为两个横线
"""
def add(a,b):
return a+b
if __name__=="__main__":
print("我是主函数")
# 主函数中调用加法函数
sum = add(100,200)
print("和为%d"%sum)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
需求:计算1-某个参数累加的和,将值返回
分析:
1.给定一个入参 入参是一个数字
2.有返回值 返回值是一个求和的结果 1- 入参之间所有的数字 100 1-100的和
"""
def countSum(endNum):
sum = 0
for i in range(1,endNum+1):
sum+=i
return sum
print(countSum(10))
1
2
3
4
5
6
7
8
9
10
11
12
13
递归函数(难点): 了解
特点: 1.函数自己调用自己 2.一定要有终结点
需求: 定义一个函数可以求出指定数字的阶乘
分析:
1.入参:是一个指定数字
2.有返回值 就是该数字的阶乘
"""
def getMulity(n):
result =1
if n > 0:
result=n*getMulity(n-1)
else: # 终结点
result =1
return result
print(getMulity(5))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
局部变量: 定义在函数内部的变量
作用:为了临时保护数据 比如函数中的变量 只有在函数执行的时候才会有效.
特点:
1.不同的函数之间可以有相同的名称的局部变量 但是互不干扰.
2.了临时保护数据
全局变量: 既能在多个函数中使用,又可以在非函数中使用.
定义在函数外部的变量.
NameError: name 'name' is not defined
"""
address = "三国" # 全局变量
def add():
name = "曹操" # 局部变量
print(address)
def delete():
name = "孙权"
print(address)
add()
delete()