一、函数的定义和调用
函数就是将【一段具有独立功能的代码块】整合到一个整体并命名,在需要的位置【调用这个名称】即可 Python 中有很多内置函数,如 max 、 min 这些是由 python 开发者预先定义好的 python 还允许开发者自己定义函数 函数和方法是一个东西 函数是一种结构,用于将代码封装起来,以方便在其他地方调用
函数能够让代码看起来更加清晰,整洁,减少代码的冗余 一次封装,随处调用
1.1 基础认知
语法格式
"""
1. def 关键字: python 解释器只要看到 def ,就真的在定义函数
2. def 关键字后面跟的是函数的名称
3.函数名称后面一定要跟上 ()
4. 小括号后面加上 :
5. 冒号后面跟的是函数体(函数封装的代码,也就是调用函数时执行的代码)
6. 调用函数: 函数名称() ,调用函数时,函数体就会执行
"""
def 函数名( 参数) :
代码1
代码2
. . . .
函数名( 参数)
1 . 不同的需求,参数可有可无
2 . 在 Python 中,函数必须“先定义后使用”
1.2 应用练习
def f1 ( ) :
print ( '我胡汉三又回来了' )
f1( )
def f2 ( ) :
print ( 'hello world' )
f2( )
def f3 ( ) :
for i in range ( 11 ) :
print ( i)
f3( )
def f4 ( ) :
for i in range ( 11 ) :
if i % 2 == 0 :
print ( i)
f4( )
def f5 ( ) :
list1= [ 1 , 5 , 6 , 14 , 66 , 100 ]
for i in list1:
print ( i)
f5( )
def f6 ( ) :
list1 = [ i for i in range ( 10 , 101 ) ]
print ( list1)
f6( )
二、函数的参数和返回值
2.1 基础认知
函数参数
"""
1. (a,b) 表示当前函数有两个参数,调用函数的时候,给这两个参数赋值
2. a 和 b 这两个参数变量在函数体内可以使用
3. 定义函数时 () 中的参数叫做 形式参数 = 形参, 形参的名称是随意的
4. 调用函数时 () 中传递的数据叫做 实际参数 = 实参
5. 实参会按照顺序赋值给对应的形参
"""
def my_num ( a, b) :
result = int ( a) + int ( b)
print ( result)
n1 = input ( '数字1:' )
n2 = input ( '数字2:' )
my_num( n1, n2)
数字1 : 20
数字2 : 30
50
函数返回值
return 表达式
"""
1. 函数内部通过 return 关键字向函数外部返回内容,这个内容就叫做函数返回值
2. 调用函数时,声明一个变量用来接收函数的返回值
"""
def my_sum ( num1, num2) :
result = num1 + num2
return result
res = my_sum( 10 , 20 )
print ( res)
"""
只执行第一个 return,因为 return 可以退出当前函数,导致 return 下方的代码不执行
"""
def f1 ( ) :
return 1
return 2
res = f1( )
print ( res)
"""
return 返回多个数据的时候,默认是元组类型
return 后面可以是列表、元组、字典,以返回多个值
"""
def f1 ( ) :
return 1 , 2
res = f1( )
print ( res)
2.2 应用练习
"""
1、定义一个函数
名称:f1
参数:1个,为想要再函数中输出的内容
作用:输出传入的参数
"""
def f1 ( name1) :
print ( name1)
name = input ( '输入内容:' )
f1( name)
"""
2、定义一个函数
名称:f2
参数:1个,表示要输出的内容
作用:输出传入的内容+......
"""
def f2 ( name1) :
print ( name1+ '.....' )
name = input ( '输入内容:' )
f2( name)
"""
3、定义一个函数
名称:f3
参数:2个,表示要输出的数字的范围,第一个参数表示起始值,第二个参数表示结束值
作用:输出两个参数规定的范围之间的数字
"""
def f3 ( start, end) :
for i in range ( start, end) :
print ( i)
num1 = int ( input ( '输入数字:' ) )
num2 = int ( input ( '输入数字:' ) )
f3( num1, num2)
"""
4、定义一个函数
名称:f4
参数:3个数字
作用:输出三个数的平均分
"""
def f4 ( num1, num2, num3) :
result = ( num1 + num2 + num3) / 3
print ( f'平均分: { result} ' )
num1 = int ( input ( '输入分数:' ) )
num2 = int ( input ( '输入分数:' ) )
num3 = int ( input ( '输入分数:' ) )
f4( num1, num2, num3)
"""
5、定义一个函数
名称 f5
参数:1个列表
作用:遍历输出一个列表中的所有元素
"""
def f5 ( list1) :
for i in list1:
print ( i)
f5( [ '张三' , '小明' , '小红' , '老王' ] )
"""
6. 定义一个函数
名称: strip_space
参数: 要去除空格的字符串
作用: 用于去除字符串的前后空格,并输出
"""
def strip_space ( str1) :
print ( str1. strip( ) )
strip_space( ' hello ' )
三、任务清单
定义一个函数,接受两个数字作为参数,计算和,并输出
def sum1 ( num1, num2) :
if num1. isdigit( ) and num2. isdigit( ) :
print ( f'两数之和: { int ( num1) + int ( num2) } ' )
else :
print ( '必须都是数字' )
num1 = input ( '请输入数字:' )
num2 = input ( '请输入数字:' )
sum1( num1, num2)
"""
运行结果:
请输入数字:1
请输入数字:2
两数之和:3
请输入数字:a
请输入数字:5
必须都是数字
"""
定义一个函数,接受一个字符串作为参数,将字符串转换为大写并输出
def str_upper ( str1) :
print ( str1. upper( ) )
str_upper( 'hello' )
"""
运行结果:
HELLO
"""
定义一个函数,接受两个人的成绩作为参数,比较大小后,输出较大的成绩
def max_score ( score1, score2) :
if score1. isdigit( ) and score2. isdigit( ) :
if int ( score1) > int ( score2) :
print ( score1)
else :
print ( score2)
else :
print ( '必须都是数字' )
score1 = input ( '输入成绩:' )
score2 = input ( '输入成绩:' )
max_score( score1, score2)
"""
运行结果:
输入成绩:60
输入成绩:90
90
输入成绩:acbc
输入成绩:100
必须都是数字
"""
定义一个函数,接受用户角色作为参数,根据不同的角色名称,返回不同的权限列表
"""
用户角色=主任,返回权限列表为:[‘添加用户’,‘编辑用户’,‘删除用户’]
用户角色=院长,返回权限列表为:[‘添加用户’,‘编辑用户’,‘删除用户’,‘删除角色’,‘添加角色’,‘编辑角色’]
注意,这里要求函数内部返回一个列表,而不是直接在函数中输出
"""
def user ( name) :
list1 = [ '添加用户' , '编辑用户' , '删除用户' ]
list2 = [ '添加用户' , '编辑用户' , '删除用户' , '删除角色' , '添加角色' , '编辑角色' ]
if name == '主任' :
print ( f'权限列表: { list1} ' )
elif name == '院长' :
print ( f'权限列表: { list2} ' )
else :
print ( '无权限' )
name = input ( '请输入用户名:' )
user( name)
"""
运行结果:
请输入用户名:张三
无权限
请输入用户名:主任
权限列表:['添加用户', '编辑用户', '删除用户']
请输入用户名:院长
权限列表:['添加用户', '编辑用户', '删除用户', '删除角色', '添加角色', '编辑角色']
"""
定义一个函数,接受一个验证码作为参数,输出验证码的比较结果
"""
如果传入的验证码为”csdn“或者"优快云"或者"Csdn"等
(也就是用户输入验证码的时候,可以随意大小写,验证的时候不区分大小写)
则返回”验证码正确“,否则返回”验证码错误“
"""
def code ( num) :
num1 = input ( '请输入一个验证码:' )
if num. upper( ) == num1. upper( ) or num. lower( ) == num1. lower( ) :
print ( '验证码正确' )
else :
print ( '验证码错误' )
code( 'csdn' )
定义一个函数,接受一个手机号码作为参数,验证手机号格式并返回
"""
手机号必须是11位的数字
手机号必须是以 137或156或133 开头
如果符合上面两个要求,返回 True,不符合要求返回 False
"""
def tel_code ( tel) :
if len ( tel) == 11 and ( tel. startswith( '137' ) or tel. startswith( '156' ) or tel. startswith( '133' ) ) :
return True
else :
return False
tel = input ( '请输入手机号:' )
tel_num = tel_code( tel)
print ( tel_num)
定义一个函数,接受一个颜色名称作为参数,根据颜色对当前页面进行换肤
def is_color ( color) :
if color == '红色' :
print ( '红艳艳' )
elif color == '绿色' :
print ( '绿油油' )
elif color == '黄色' :
print ( '黄灿灿' )
else :
print ( '还没有设计你想要的皮肤' )
color = input ( '输入一个颜色名称:' )
is_color( color)
定义一个函数,接受两个参数
"""
参数1:为一个字符串
参数2:为一个列表
函数的作用是将字符串插入到列表的末尾,并输出列表
"""
def f1 ( str1, list1) :
list1. append( str1)
print ( list1)
f1( '张三' , [ '老王' , '老二' , '法外狂徒' ] )
"""
运行结果:
['老王', '老二', '法外狂徒', '张三']
"""
定义一个函数,接受一个字符串作为参数
"""
作用是:
先将字符串转换为大写
再将转换之后的字符串进行翻转
最后再作为函数的返回值返回
"""
def f1 ( str1) :
str2 = str1. upper( )
str3 = str2[ - 1 : : - 1 ]
return str3
result = f1( 'abc' )
print ( result)
"""
运行结果:
CBA
"""
定义一个函数,接受两个列表作为参数,返回一个字典
"""
一个列表为人名单,如[‘张三’,‘李四’,‘王五’]
一个列表为应发工资,如 [10000,8000,6000]
函数内部将两个列表组成一个如下格式序列并作为函数返回值返回
[
{'name':'张三','salary':10000},
{'name':'李四','salary':8000},
{'name':'王五','salary':6000}
]
"""
def f1 ( list1, list2) :
list3 = [ ]
for i in range ( len ( list1) ) :
dict1 = { 'name' : list1[ i] , 'salary' : list2[ i] }
list3. append( dict1)
return list3
result = f1( [ '张三' , '李四' , '王五' ] , [ 10000 , 8000 , 6000 ] )
print ( result)