专栏首页开源优测[快学Python3]函数

[快学Python3]函数

一、一个基本的函数

概述

简单的说,函数就是一种代码组织方式,让你可以实现单一、或关联功能的封装,以便高复用。

函数定义

下面我们看一看在Python中函数定义的基本形式:

def 函数名(参数列表):
    
    # 代码块
    
    return 返回值

下面我们看一个简单的实例,计算两个数的和:

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

__author__ = u'苦叶子'

def sum(a, b):
    
    c = a + b    
    return c

if __name__ == "__main__":
    print(u"函数定义,计算和")    
    # 调用函数
    c = sum(1 ,2)
    
    print(c)

在调用时,参数会根据顺序与函数定义时的参数顺序匹配起来,在本例中a=1, b=2

乘法表示例

下面我们用函数封装实现九九乘法表,请看代码实例:

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

__author__ = u'苦叶子'

# 九九乘法表
def multi():
    data = []
    for i in range(1, 10):
        line = []
        for j in range(i, 10):
            line.append(u"%d * %d = %2d " % (i, j, i*j))
            
        data.append(line)  
              
    return data

if __name__ == "__main__":
    print(u"九九乘法表实例:")
    data = multi()    for d in data:
        print(d)

执行的结果如下:

小结

大家可以根据实例进行各种改造尝试,以便进一步深入了解函数的特性。

二、参数传递

概述

在Python中参数的传递要注意传入的是可更改的还是不可更改的对象。

在python中对象从修改来讲可以分为:

  • 可更改对象 在python中,可更改的对象有list(列表)、dict(字典)、set(集合)等等
  • 不可更改对象 不可更改的对象有strings、tuples、numbers等等。

在Python函数参数的传递,可以传入不可变或可变类的参数。

不可变类型:类似C/C++中的传值参数。

可变类型:类似C/C++的引用参数(即传地址方式)

因为在Python中一切皆为对象,所以在Python中严格来讲我们不能跟在C/C++中一样说是值传递或引用传递,应该讲传不可变对象或可变对象。

元组传递

下面我们讲解下如何将元组作为参数传递。例如有一个元组,我们将其传递给一个函数进行和计算:

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

__author__ = u'苦叶子'

# 求和

def sum_tuple(seq):
    sum = 0
    for s in seq:
        sum = sum + s    
    return sum
    
if __name__ == "__main__":
    print(u"元组传参,求和实例:")
    tuple_1 = (1, 9, 10, 2, 2, 39, 0, 11, 20)
    print(tuple_1)

    sum = sum_tuple(tuple_1)
    print(u"和为: %d" % sum)

运行结果如下:

元组传参,求和实例:
(1, 9, 10, 2, 2, 39, 0, 11, 20)
和为: 94

字符串传递

下面我们将多个字符串传递给函数进行字符串连接操作:

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

__author__ = u'苦叶子'

# 字符串连接函数
def str_join(str1, str2, str3):

    return str1 + str2 + str3

if __name__ == "__main__":
    print(u"字符串连接实例: ")

    str1 = u"大家好,"
    str2 = u"我的公众号是:"
    str3 = u"开源优测"

    str_j = str_join(str1, str2, str3)
    print(str_j)

运行结果如下:

字符串连接实例: 
大家好,我的公众号是:开源优测

本文分享自微信公众号 - 开源优测(DeepTest),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [快学Python3]Number(数字)

    概述 Python数值数据类型用于存储数值,并有一系列对应的函数用于处理数值类型的数据。 在Python中支持三种不同类型的数值类型: 整型(int) 通常称为...

    苦叶子
  • [接口测试 - 基础篇] 11 掌握下python解析YAML格式也是需要的

    什么是YAML YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。 Clark Evans在2001年5月...

    苦叶子
  • [快学Python3]List(列表)

    概述 List(列表)是Python最常用的数据类型,它使用方括号[]来标识,下面我们看一个基本的列表创建示例: list1 = [1, 2, 3, u"Dee...

    苦叶子
  • shell入门系列(7)find

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    suveng
  • R语言学习由浅入深路线图

    对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来。当然,这不是最好的学习方式,最好的...

    CDA数据分析师
  • R语言学习路线和常用数据挖掘包

    对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来。当然,这不是最好的学习...

    机器学习AI算法工程
  • 《笨办法学Python》 第41课手记

    《笨办法学Python》 第41课手记 本节课的代码有168行,但是冗长不代表困难,只是print里面的游戏说明内容太多,整体来说是很容易的,你要锻炼自己的耐心...

    Steve Wang
  • R语言学习由浅入深路线

    现在对R感兴趣的人越来越多,很多人都想快速的掌握R语言,然而,由于目前大部分高校都没有开设R语言课程,这就导致很多人不知道如何着手学习R语言。 对于初学R语言的...

    小莹莹
  • Flink 数据湖 助力美团数仓增量生产

    整个架构图分为三层,从下往上看,最下面一层是数据安全,包括受限域认证系统、加工层权限系统,应用层权限系统,安全审计系统,来保证最上层数据集成与处理的安全;

    kk大数据
  • 从0开始的Python学习003序列

    序列是一组有顺序数据的集合。不知道怎么说明更贴切,因为python的创建变量是不用定义类型,所以在序列中(因为有序我先把它看作是一个有序数组)的元素也不会被类型...

    Happy、Liu

扫码关注云+社区

领取腾讯云代金券