Python笔记8 函数

本文详细介绍了Python中的函数使用,包括位置传递、关键词传递、默认值参数、传递列表、任意数量的实参及关键词实参。此外,还讲解了函数库的调用方式,如import、from...import等不同导入方法,以及如何避免命名冲突。内容深入浅出,适合Python初学者和进阶者学习。
摘要由CSDN通过智能技术生成

一、函数

函数是程序中一个个小小的功能模块,可以有输入和输出,输入过程中通常会将实参值赋给形参,形参在函数体内参与运算

def function_name(parameter1, parameter2):
    statement1
    statement2
    return something_or_nothing

① 传递实参

1. 位置传递

按照函数定义的形参顺序,在调用时依次输入实参变量

def add(number1, number2):
    sum = number1 + number2
    return sum

a = 3
b = 5
print(add(a, b))

2. 关键词传递

无需按照顺序输入实参变量

def pet(type, whos):
    print(type + " is " +whos + "'s pet.")

pet(whos = "Herman", type = "dog")
dog is Herman's pet.

3. 默认值

当为函数形参设置默认值时,可以省略它的实参传递,但是要注意,有默认值的需要放在没有默认值的形参后面,当需要为这个有默认值的形参设置参数时,采用关键词传递方式或位置传递,默认值的函数形参同样遵循位置传递的顺序

def pet(typename, whos="Herman"):
    print(typename + " is " + whos + "'s pet.")


pet("dog")
pet(whos="Bob", typename="cat")
dog is Herman's pet.
cat is Bob's pet.

② 传递列表

当传递列表时,同复制列表不可以直接使用list_new = list 一样,因为会使得新旧变量均指向同一个列表,因此当传递列表时,在函数体内对形式列表变量的操作也会影响到实际的列表,当需要保留原列表时,可以使用切片表示法,在向函数传递时,给函数传递一个列表的完全切片(复制品)

function_name(list_name[:])
def juice(food):
    while food:
        add_in_food = food.pop()
        print("Add " + add_in_food + " into juice")
        if food:
            print(str(food) + " remain in function")
        else:
            print("nothing in the food")


fruits = ['apple', 'orange', 'banana']
juice(fruits[:])
print(fruits)

③ 传递任意数量的实参

在形参名前加星号,让Python创建一个名为形参名的空元组,并将收到的所有值装入元组(不可修改的列表)
如果某个形参要接纳任意数量的实参,应该将其放在形参顺序的最后,将会在满足完全函数所有的无默认值参数、有默认值参数后,开始将剩下的值填入元组并存于最后一个形参变量中

def food(username, *pet_names):
	print(username + " has " + str(pet_names))


food("herman", "tomato", "banana")
herman has ('tomato', 'banana')

④ 使用任意数量的关键词实参

当需要向函数传递不定数量的键-值对时,可以在形参前添加双星号,使这个形参的形式为字典,将会把满足完前面参数剩下的关键词参数名及其对应的值,以键值对的形式存入字典

def person_info(name, **user_infos):
    profile = {}
    profile['name'] = name
    for key, value in user_infos.items():
        profile[key] = value
    return profile


herman_profile = person_info("herman", school= "ABC_School", age=18)
print(herman_profile)
{'name': 'herman', 'school': 'ABC_School', 'age': 18}

二、函数的库(模块)与库的调用

① 函数库的封装

在python中,函数的库以.py文件的形式存储,在函数库文件中只有函数

② 函数库的调用

当目录相同时可以这样调用

1. 调用整个库

import的本质是将代码copy到此处,在使用库内函数时,只需要在函数前加上库名并带一个点

import module_name
module_name.function()

2. 调用库中某些函数

直接调用库内某些函数时,使用函数时无需再带上库名

from module_name import function_name_1, function_name_2
function()

3. 为库指定别名

使用关键字as

import module_name as nickname
nickname.function()

4. 为库内函数指定别名

直接调用库内某些函数时,使用函数时无需再带上库名

from module_name import function_name as fn
fn()

5. 导入模块所有函数

通常不使用,因为容易和本文件内已经命名好的函数重名导致报错

from module_name import *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值