一:函数初识

一:初识函数

1.1 函数的定义

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

 1.2 函数的语法或结构

 Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
    函数体

 例子:

# 计算面积函数
def area(width, height):
    return width * height
 
def print_welcome(name):
    print("Welcome", name)
 
print_welcome("Runoob")
w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))

输出:
# Welcome Runoob
# width = 4  height = 5  area = 20

1.3函数的调用

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

如下实例调用了 printme() 函数:

# 定义函数
def printme( str ):
   # 打印任何传入的字符串
   print (str)
   return
 
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")

# 输出
# 我要调用用户自定义函数!
# 再次调用同一函数

1.4函数的返回值

1.遇到return,函数结束,return下面的(函数内)的代码不会执行。

2.return 会给函数的执行者返回值。

  如果return后面什么都不写,或者函数中没有return,则返回的结果是None

  如果return后面写了一个值,返回给调用者这个值

  如果return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的解构获取多个变量。

def date():
    print("拿出手机")
    print("打开陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")
    return '漂亮的妹子','小萝莉', '成熟女性'
g1,g2,g3 = date()
print(g1, g2, g3)  

# 输出
# 漂亮的妹子 小萝莉 成熟女性

 

二,函数的参数(重点)

例子:

def date(sex):
    print("拿出手机")
    print("打开陌陌")
    print('设置筛选条件:性别: %s' %sex)
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")

date('')

上面就是函数传参的示例,函数的参数可以从两个角度划分:

  1.形参

    写在函数声明的位置的变量叫形参,形式上的一个完整.表示这个函数需要xxx

  2.实参

    在函数调用的时候给函数传递的值.加实参,实际执行的时候给函数传递的信息.表示给函数xxx

 函数的传参就是函数将实际参数交给形式参数的过程.

解释:

def date(sex):  # 函数定义时(参数) 这个就是形参
    print("拿出手机")
    print("打开陌陌")
    print('设置筛选条件:性别: %s' %sex)
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")

date('')  # 函数执行时(参数) 这个就是实参
# 这个过程就是:代码运行到date('女')开始执行此函数同时将字符串'女'这个数据传递给变量sex,然后执行函数中的代 # 码。如果遇到sex,其实就是使用'女'这个数据。

 

2.1 实参角度

2.1.1 位置参数

位置参数就是从左至右,实参与形参一一对应。

def date(sex, age, hobby):
    print("拿出手机")
    print("打开陌陌")
    print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")
date('','25~30','唱歌')
date('人妖','20~25','萝莉音')

 

2.1.2 关键字参数

位置参数好不好呢? 如果是少量的参数还算OK, 没有问题. 但是如果函数在定义的时候参数非常多怎么办? 程序员必须记住, 我有哪些参数, 而且还有记住每个参数的位置, 否则函数就不能正常调用了. 那则么办呢? python提出了一种叫做关键字参数. 我们不需要记住每个参数的位置. 只要记住每个参数的名字就可以了

def date(sex, age, hobby):
    print("拿出手机")
    print("打开陌陌")
    print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")
date(hobby='唱歌',sex='',age='25~30',)

 

2.1.3 混合参数

可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.

注意:关键字参数一定在位置参数后面。

def date(sex, age, hobby):
    print("拿出手机")
    print("打开陌陌")
    print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")
date('',hobby='唱歌',age='25~30',)

 

2.1.4 总结

在实参的⾓角度来看参数分为三种:

  1. 位置参数

  2. 关键字参数

  3. 混合参数, 位置参数必须在关键字参数前面

2.2 形参角度

2.2.1 位置参数

位置参数其实与实参角度的位置参数是一样的,就是按照位置从左至右,一一对应

def date(sex, age, hobby):
    print("拿出手机")
    print("打开陌陌")
    print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
    print("找个漂亮的妹子")
    print("问她,约不约啊!")
    print("ok 走起")
date('','25~30','唱歌')

 

2.2.2 默认值参数

在函数声明的时候, 就可以给出函数参数的默认值. 默认值参数一般是这个参数使用率较高,才会设置默认值参数,可以看看open函数的源码,mode=‘r’就是默认值参数. 比如, 我们录入咱们班学生的基本信息. 通过调查发现. 我们班大部分学生都是男生. 这个时 候就可以给出⼀一个sex='男'的默认值.

def stu_info(name, age, sex=''):   
    print("录入学生信息")
    print(name, age, sex)   
    print("录入完毕")
stu_info("张强", 18)

 

注意:必须先声明在位置参数,才能声明关键字参数

2.2.3 总结

在形参的角度来看

  1.位置参数 

  2.默认认值参数(大多数传进来的参数都是一样的, 一般用默认参数函数的形参角度参数还有两种,请看下一篇)

 

posted @ 2020-08-17 17:32  勇敢面对difficult  阅读(158)  评论(0)    收藏  举报