python里面的自定义函数及其调用

python学习的第六天

1、什么是函数

什么是函数呢?比如【print()】输出函数,【str()】等类型转换函数等等计算机根据我们下达的指令在底层一定是进行了一系列的运算和操作,最终输出了括号里面的数据。

而这底层的一些列操作其实就是被封装成了一个函数,print就是这个函数的名字,而我们只需要编写print这个指令,计算机底层就会执行这些操作。其实在生活中,函数无处不在。

比如:当你饿了的时候,喊了一嗓子:"妈,我饿了,给我做个饭吧!"这就是非常典型的「函数的调用」。妈妈是提供了做饭的函数,而我们调用了这个函数。而做饭的这个函数其实就是一系列加油盐,翻炒动作的封装。

🔥总结:所以函数本质上就是为了完成某个会重复使用的特定功能而定义的一些列动作的集合。

2、函数的作用

🔥总结 :使用函数的好处

👉 1.避免代码的冗余

👉 2.让程序代码结构更加清晰

👉 3.让代码具有复用性,便于维护

3、自定义函数

一个函数由【def】,【函数名】,【参数】,【函数体】,【return语句】组成。

【def】是固定写法,不用管。【函数名】是自定义的,写函数名的时候见名知意就好。【函数体】就是这个函数具体的执行步骤。【return语句】和【参数】我们放到后面说。

我们定义健康和身高体重之间的关系为:健康系数 = 体重(KG)/身高(m)^2

⚠️注意: ^2这里指平方的意思

如果 0 < 健康系数 < 18.5 偏瘦,需要适当增肥。如果 18.5 < 健康系数 < 25 正常非常健康。如果25 < 健康系数 < 30 偏胖,需要适当减肥。如果30 < 健康系数 < 35 中胖 ,加强每日运动量!如果健康系数> 35 太胖,急需减肥降重!

# 第一步:定义函数名称为Healthy
def Healthy() :
  #第二步 :使用input函数接收用户输入的身高体重信息
  height = input('输入你的身高(m):')
  width = input('输入你的体重(kg):')
  #第三步 :利用计算公式计算健康系数,健康系数 = 体重(KG)/身高(m)^2 
  #此处需要注意,从input接收到的数据是str类型,需要做类型转换
  core = float(width)/float(height)**2
  #第四步 :利用if...elif...;来进行多条件判断
  if core < 18.5 :
    #输出信息
    print('您的健康系数为'+str(core)+';体质偏瘦,需要增肥!')
  elif core < 25 :
    print('您的健康系数为'+str(core)+';体质正常,再接再厉!')
  elif core < 30 :
    print('您的健康系数为'+str(core)+';体质偏胖,需要减肥!')
  elif core < 35 :
    print('您的健康系数为'+str(core)+';体质中胖,急需减肥!')
  else :
    print('您的健康系数为'+str(core)+';体质太胖,再不减肥就没命了!')

4、函数的调用

# 第一步:定义函数名称为Healthy
def Healthy() :
  #第二步 :使用input函数接收用户输入的身高体重信息
  height = input('输入你的身高(m):')
  width = input('输入你的体重(kg):')
  #第三步 :利用计算公式计算健康系数,健康系数 = 体重(KG)/身高(m)^2 
  #此处需要注意,从input接收到的数据是str类型,需要做类型转换
  core = float(width)/float(height)**2
  #第四步 :利用if...elif...;来进行多条件判断
  if core < 18.5 :
    #输出信息
    print('您的健康系数为'+str(core)+';体质偏瘦,需要增肥!')
  elif core < 25 :
    print('您的健康系数为'+str(core)+';体质正常,再接再厉!')
  elif core < 30 :
    print('您的健康系数为'+str(core)+';体质偏胖,需要减肥!')
  elif core < 35 :
    print('您的健康系数为'+str(core)+';体质中胖,急需减肥!')
  else :
    print('您的健康系数为'+str(core)+';体质太胖,再不减肥就没命了!')
#此处调用函数,注意缩进
Healthy()

5、参数

【参数】写在函数名称后面的括号中。一个函数可以定义一个参数,也可以有多个参数,多个参数之间用逗号隔开,参数的名称是自定义,命名规则和变量命名规则一致。

参数具体的应用在什么地方呢?我们之前讲过,如果你喊了一句 “妈妈,我饿了,给我做饭”,这是调用了妈妈做饭的这个函数。但是如果你是这样喊的 “妈妈,我饿了,给我做饭,加个鸡蛋”

# 定义cook函数并写入参数
def cook(food) :
  #输出
  print('妈妈现在正在处理'+food)

#函数调用
#需要注意,如果函数有参数,调用函数的时候,必须提供对应的参数
cook('鸡腿🍗')

程序执行的过程是,首先cook(‘鸡腿🍗’)调用了cook这个函数,cook这个函数便开始执行了,同时鸡腿🍗也被当做参数传递进入cook函数,也就是food=鸡腿🍗。

cook函数执行后,函数里面调用了print函数。print函数括号里完成了字符串 ‘妈妈正在处理’和参数food的拼接,此时food=鸡腿🍗,所以终端最终输出的结果是 ‘妈妈正在处理鸡腿🍗’。

当我们在调用函数的时候,改变了传递的参数,那么food就会被赋值不同的值,从而终端也会输出不同的结果了😘

每日一题

题目要求
喵酱最近很寂寞,想结交几个朋友,已知喵酱的精力是有限的,每天最多结交10个朋友,但是最少要结交1个朋友。

请你定义一个函数来决定喵酱总共交了几天朋友,每天结交了多少个朋友,并且总共结交了多少个朋友。

2做法讲解
1.定义函数cat_friend,接收一个参数num来确定喵酱结交了几天朋友;

2.定义喵酱总的朋友数all_friends,最开始为0个;

3.循环num让喵酱每天结交朋友;

4.random.randint(1, 10)实现喵酱每天随机结交1-10个朋友,并打印每天结交的朋友数;

5.all_friends将每天结交的朋友数的和记录下来,并打印总共结交的朋友数;

6.调用函数传入结交朋友的天数。

答案:

# 这里输入代码哦
import random

def makefriend(num):
    all_friends = 0
    for i in range(num):
        friend = random.randint(1,10)
        print('每天结交'+str(friend)+'个朋友')
        all_friends+=friend
        print('总共结交了'+str(all_friends)+'个朋友')
makefriend(10)