前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python之函数系列(一)

Python之函数系列(一)

作者头像
py3study
发布2020-01-14 14:28:24
3140
发布2020-01-14 14:28:24
举报
文章被收录于专栏:python3python3

每个编程语言中(诸如:Java、C++、C)等都有函数的,Python也不例外

函数的主要作用有哪些呢?

1、将程序的功能进行模块化,功能模块清晰

2、减少重复代码的工作量

3、便于阅读及维护、调试等

一、函数的结束及返回值

# -*- coding: utf-8 -*-

def f1():
    print("This is Fun()")
    return  #函数调用结束
    print("-- End 1--")
    print(" Print 2")
    return "--- End 2  --"

f1()
print(type(f1()))

运行结果:

This is Fun() This is Fun() <class 'NoneType'>

1.函数在遇到return语句时,此时函数调用已经结束

2.函数是有返回值的,只不过这里是None类型

再看下面的例子:

def mth_return():
    return 1,"String",["a","b"],{"K1":1,"Key2":2}
print(mth_return())
print(type(mth_return()))

运行结果:

(1, 'String', ['a', 'b'], {'K1': 1, 'Key2': 2}) <class 'tuple'>

此时,函数的返回值是一个元组

二、函数的参数

  对于函数,其函数名后面的变量通常称为:形参,调用函数时,提供的值称为:实参

# -*- coding: utf-8 -*-

def method(name,age):  #name,age是形参
    print(name,age)
def method2(name,age ="18"):  #提供默认参数值
    print(name,age)

n = "Mr.James"
method(n,38)  #n是实参
method2("Zhang")
method2("Mr.Zhang",28)

运行结果:

Mr.James 38 Zhang 18 Mr.Zhang 28

三、函数的关键字参数

   对于上面的例子,其函数是位置位置参数,位置一一对应,不能多也不能少

   下面的这个这个例子跟上面的有点不一样,在Python中称之为:关键字参数

# -*- coding: utf-8 -*-

def test(name="James",age=29):
    print("name:{},{}".format(name,age))

test(age=20,name="Mr.Zhang")

运行结果:

name:Mr.Zhang,20

四、函数的可变长参数

 对于位置参数而言,形参及实参需要一一对应,若有时不确定需要哪些参数或为了日后能很好的扩展,Python中提供了可变长参数

用法:def function(self,*args,**kwargs)

具体例子:

例子1:

# coding = utf-8

def test(name,*args):
    print(name)
    print(args)
    print(args[3])

test("Mr.Zhang",1,2,3,["a","b"],{"Key1":1,"Key2":2})  # *args 返回的是一个元组

运行结果:

Mr.Zhang (1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2}) ['a', 'b']

例子2:

# coding = utf-8
def test2(name,*args,**kwargs):  # **kwargs返回的是一个字典
    print(name)
    print(args)
    print(kwargs)

test2("Mr.Zhang",1,2,3,['a','b'],{"Key1":1,"Key2":2},age=18,sex="F")

运行结果:

Mr.Zhang (1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2}) {'age': 18, 'sex': 'F'}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档