1.1函数简介
函数(function)可以用来保存一些可执行的代码,在需要的时候,对这些语句进行重复的调用
函数的优点
-
遇到重复功能的时候,直接调用即可,减少代码量
-
提升代码项目的结构性,提高代码的可读性
-
遇到扩展功能,修改比较方便
2.1 函数定义
定义函数
def 函数名(形参1,形参2,形参3....):
代码块
函数名的命名规则与变量一样
-
由数字、字母、下划线组合
-
首字母不能是数字
-
不能是关键字
规范
-
见名知意
-
下划线命名法
-
驼峰命名法
-
取名字尽量不要取跟python内置成员相同
def fn():
print('这是我的第一个函数')
函数中保存的代码不会立即执行,需要用户调用函数,代码才会执行
3.1 函数调用
语法:
函数对象()
函数必须遵守先定义再调用
def fn():
print('hello')
print('我叫白云')
print('上课了吗')
print('再见')
fn()
fn()
fn()
fn()
# 定义一个login函数,功能是 输入用户名和密码,验证是否正确
def login():
username = input('用户名:')
password = input('密码:')
if username == 'root' and password == '123456':
print('登录成功')
else:
print('登录失败')
区分一个东西
fn 是什么 函数对象/函数本身/函数的内存地址
fn() 是什么 调用fn/使用函数对象
def fn():
print('hello,world')
a = fn # fn:内存地址
a() # fn()
3.1 函数的形参与实参
3.1.1 形参与实参
无参数
def 函数名(): # 括号里面没有东西叫无参数
pass
有参数
def 函数名(参数1,参数2,参数3): #
pass
函数的参数:在定义函数时,可以在函数名后()中定义数量不等的形参,逗号隔开
形参(形式参数):定义形参就相当于在函数内部声明了变量,并没有值
实参(实际参数):函数定义时指定了形参,在调用的时候也必须传递实参,实参会赋值给对应的形参。
def fn(a, b): # 定义函数时指定形参
print('a =', a)
print('b =', b)
fn(10, 20) # 调用函数时,来传递实参
fn(666,333)
def sum2(a, b):
print(f'{a} + {b} = {a+b}')
sum2(111, 222)
总结:定义函数的时候那个叫形参,调用的时候叫实参。
定义了多少个形参就得传递多少个实参
3.1.2 参数的传递方式
3.1.2.1 默认值参数
# 如果用户传递了c ,那么默认值参数无效
# 如果用户没有传递c,则默认值有效
def fn(a, b, c=10):
print('a =', a)
print('b =', b)
print('c =', c)
fn(1, 2)
3.1.2.2 位置参数与关键字参数
实参的传递方式
# 1.位置参数
将对应位置的实参赋值给对应位置的形参
第一个实参 =》 第一个形参
第二个实参 =》 第二个形参
def save(年龄,姓名,手机号,QQ号,微信号,国籍,爸爸名,省份,妈妈名,学历,出生年份,出生月份,是否结婚):
pass
save()
# 2.关键字参数
可以不按照形参定义的顺序来传递,直接根据形参名来传递参数
def fn(a, b, c):
print('a =', a)
print('b =', b)
print('c =', c)
fn(a=1,c=3,b=2)
关键字参数和位置参数可以混合使用
混合使用关键字参数和位置参数时必须要将位置参数写在前面
def fn(a, b, c):
print('a =', a)
print('b =', b)
print('c =', c)
fn(5,6,c=7)
print(1, 2, 3, 4, 5, 6, 7, 8, 9,end='10')
3.1.3 实参的类型
def fn(a, b):
print(a + b)
def fn2(a):
a(10, 20) # fn(10,20)
fn2(fn) # fn fn()
实参可以是任意一个数据类型,什么都行,啥都行
4.1 练习
# 1.编写一个函数,功能是输出hello,world
# 2.定义一个函数jia,传入两个参数num1,num2,输出它们的和
# 3.编写一个函数,功能是输出2个数中较大的一个数
'''
4.BMI是Body Mass Index 的缩写,BMI中文是“体质指数”的意思,是以你的身高体重计算出来的。BMI是世界公认的一种评定肥胖程度的分级方法,世界卫生组织(WHO)也以BMI来对肥胖或超重进行定义。
身高体重指数这个概念,是由19世纪中期的比利时通才凯特勒最先提出。它的定义如下:
体重指数(BMI)=体重(kg)÷身高^2(m)
成人的BMI数值:
过轻:低于18.5
适中:18.5-25
过重:25-30
肥胖:30-35
非常肥胖, 高于35
专家指出最理想的体重指数是22。
请你定义一个函数, 用户输入体重(kg单位) ,输入身高(m单位) 作为参数传入函数,计算出BMI 然后根据BMI 输出 过轻,适中,过重,肥胖,非常肥胖
ps:用函数的参数做
'''
5.1 答案解析
# 1.编写一个函数,功能是输出hello,world
def scy():
print('hello,world')
scy()
# 2.定义一个函数jia, 传入两个参数num1, num2, 输出它们的和
def jia(num1,num2):
sum=num1+num2
print(sum)
jia(5,6)
# 3.编写一个函数,功能是输出2个数中较大的一个数
def dhm(max1,min1):
if(max1>min1):
print(max1)
else:
print(min1)
dhm(78,88)
# 4.BMI是Body Mass Index 的缩写,BMI中文是“体质指数”的意思,是以你的身高体重计算出来的。BMI是世界公认的一种评定肥胖程度的分级方法,世界卫生组织(WHO)也以BMI来对肥胖或超重进行定义。
# 身高体重指数这个概念,是由19世纪中期的比利时通才凯特勒最先提出。它的定义如下:
# 体重指数(BMI)=体重(kg)÷身高^2(m)
# 成人的BMI数值:
# 过轻:低于18.5
# 适中:18.5-25
# 过重:25-30
# 肥胖:30-35
# 非常肥胖, 高于35
# 专家指出最理想的体重指数是22。
# 请你定义一个函数, 用户输入体重(kg单位) ,输入身高(m单位) 作为参数传入函数,计算出BMI 然后根据BMI 输出 过轻,适中,过重,肥胖,非常肥胖
# ps:用函数的参数做
def BMI(kg,m):
BMI_1=kg/m**2
if(BMI_1<18.5):
print("过轻")
elif(25>BMI_1>=18.5):
print("适中")
elif(30>BMI_1>=25):
print("过重")
elif(35>BMI_1>=30):
print("肥胖")
else:
print("非常肥胖")
BMI(70,1.77)