Python-函数

1 基本介绍

(1)通过return返回值;

(2)位置实参调用函数需要关注参数顺序,采用关键字实参调用函数不需要;

(3)三引号表示文档字符串(docstring)的注释,Python 使用它们来生成有关程序中函数的文档;

(4)函数中参数付默认值,调用时可以不传递参数会采用默认值(或称为让实参变成可选),不报错;

(5)如果函数所需要的参数为列表,而函数中会对改传递参数进行清空,为了不影响原有列表的数值,则不能按照function_name(list_name)传递,可以按照下面的方式传递function_name(list_name[:]);这种方式因为调用function_name需要列表的副本,会增加运行时间和内存;

  (6) 在传递参数数量未知的情况下,可以使用*或**的方式。

TEST.py代码如下:

#函数可以指定默认值4,变成可选参数;也可以不指定,调用时必须赋值
def while_fun(message=4,max_num=10):
    """函数学习"""
    while message < max_num:
        message += 1;
        if int(message) % 2 == 0:
            continue #如果是偶数,则while循环从头执行,不执行下面的语句
        #打印奇数
        print(f"{message} is an even number")
    return message

#函数调用
message_rt=[]

print("----message=默认值--------")
message_rt.append(while_fun())
print(message_rt)

print("----message=2--------")
#采用关键字实参方式赋值,无需关注参数顺序
message_rt.append(while_fun(max_num=8,message=2))
print(message_rt)

print("----message=3--------")
#形参方式赋值,需关注参数顺序
message_rt.append(while_fun(3,10))
print(message_rt)

运行结果:

----message=默认值--------
5 is an even number
7 is an even number
9 is an even number
[10]
----message=2--------
3 is an even number
5 is an even number
7 is an even number
[10, 8]
----message=3--------
5 is an even number
7 is an even number
9 is an even number
[10, 8, 10]

Process finished with exit code 0

2 导入函数模块

导入:import module_name

使用:module_name.function_name()

        在TEST_import.py中调用TEST.py中函数,TEST_import.py的代码如下:

'''导入函数的整个模块'''
print("----import TEST.py--------")
#导入TEST.py模块
import TEST
message_rt=[]#定义空列表
#调用TEST.py中的函数,注意函数前需要加上TEST.
message_rt.append(TEST.while_fun(2,12))
print(message_rt)

运行结果(前面打印的结果魏TEST.py中代码打印出来的,后面一组打印结果是TEST_import.py打印的):

----import TEST.py--------
------while-------------
----message=默认值--------
5 is an even number
7 is an even number
9 is an even number
[10]
----message=2--------
3 is an even number
5 is an even number
7 is an even number
[10, 8]
----message=3--------
5 is an even number
7 is an even number
9 is an even number
[10, 8, 10]
3 is an even number
5 is an even number
7 is an even number
9 is an even number
11 is an even number
[12]

Process finished with exit code 0

注意:导入后,在调用while_fun函数后,在下一个函数之前的代码也会一并执行。

3 导入特定的函数

导入:from module_name import function_0, function_1, function_2

使用:function_name()

'''导入特定的函数模块'''
print("----import TEST.py--------")
#使用import语句显式的导入函数while_fun
from TEST import while_fun
message_rt=[]#定义空列表
#调用TEST.py中的while_fun函数,函数前无需加TEST.
message_rt.append(while_fun(2,12))
print(message_rt)

运行结果:

----import TEST.py--------
------while-------------
----message=默认值--------
5 is an even number
7 is an even number
9 is an even number
[10]
----message=2--------
3 is an even number
5 is an even number
7 is an even number
[10, 8]
----message=3--------
5 is an even number
7 is an even number
9 is an even number
[10, 8, 10]
3 is an even number
5 is an even number
7 is an even number
9 is an even number
11 is an even number
[12]

注意:导入后,在调用while_fun函数后,在下一个函数之前的代码也会一并执行。

4 导入时给函数指定别名

导入:from module_name import function_name as new_fc_name

使用:new_fc_name

'''导入特定的函数模块'''
print("----import TEST.py--------")
#使用import语句显式的导入函数while_fun,取名为WF_rename
from TEST import while_fun as WF_rename
message_rt=[]#定义空列表
#调用TEST.py中的while_fun函数,即WF_rename
message_rt.append(WF_rename(2,12))
print(message_rt)

运行结果:

----import TEST.py--------
------while-------------
----message=默认值--------
5 is an even number
7 is an even number
9 is an even number
[10]
----message=2--------
3 is an even number
5 is an even number
7 is an even number
[10, 8]
----message=3--------
5 is an even number
7 is an even number
9 is an even number
[10, 8, 10]
3 is an even number
5 is an even number
7 is an even number
9 is an even number
11 is an even number
[12]

注意:导入后,在调用while_fun函数后,在下一个函数之前的代码也会一并执行。

5 导入模块中的所有函数

将模块中的所有函数都复制到当前的程序文件中。

导入:from module_name import *

使用:跟导入特定的函数使用方法一致

6 传递任意数量的实参函数编写

(1)通过*variable传递不同数量的参数。

def MeasurementVariable(*variable):
    print(variable)

MeasurementVariable('nmot','rl','zwout','zwspace','zwbase')

运行结果:

('nmot', 'rl', 'zwout', 'zwspace', 'zwbase')

(2)结合实参

def MeasurementVariable(position,*variable):
    print(f"all input: {variable}.")
    print(f"variable in pisition {position} is {variable[position]}")

MeasurementVariable(3,'nmot','rl','zwout','zwspace','zwbase')

运行结果:

all input: ('nmot', 'rl', 'zwout', 'zwspace', 'zwbase').
variable in pisition 3 is zwspace

(3)结合字典

有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键值对(通过**project_info)。

test_fun.py:

#定义函数
def Project_info_collect(vehicaltype,gearbox,**project_info):
    project_info['vehical_type']=vehicaltype
    project_info['gear_box']=gearbox
    return project_info

#调用函数
vehical_info=Project_info_collect('CX001','CVT',
                                 veh_color='white',
                                 veh_emission='CN6B')
#打印结果
print(vehical_info)

运行结果:

{'veh_color': 'white', 'veh_emission': 'CN6B', 'vehical_type': 'CX001', 'gear_box': 'CVT'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值