Python基础语法(函数)

本节将着重介绍Python中的函数部分

目录

一、函数示例

二、传递实参

2.1位置实参

2.2关键字实参

 2.3默认值

三、返回值

3.1返回值示例

 3.2实参可选

 四、传递列表

五、传递任意数量的实参

1.使用方法

2.使用任意数量的关键字实参

六、将函数存储在模块


一、函数示例

def print_username(username):
    print(username)

print('ph')

 示例中函数名为print_username,声明时的参数username为形参,调用时的参数ph为实参

二、传递实参

2.1位置实参

传递参数时实参与形参的顺序一一对应

def describe_pet(animal_type, pet_name):
    print(animal_type)
    print(pet_name)

describe_pet('cat','taohua')

2.2关键字实参

使用关键字将形参与实参一一对应,实参的位置不再严格要求

def describe_pet(animal_type, pet_name):
    print(animal_type)
    print(pet_name)

describe_pet(pet_name='taohua', animal_type= 'cat')

 2.3默认值

编写函数时可以为函数提供默认参数,当没有实参时将使用默认参数(使用时实参仍遵循位置实参或关键字实参的规则,三者可以混合使用)

注:默认形参需要排在形参之后

def describe_pet(pet_name, animal_type='cat'):
    print(animal_type)
    print(pet_name)

describe_pet(pet_name='taohua')

三、返回值

返回值与c语言中的函数同理,可以是一个值或者一组值。

3.1返回值示例

def get_formatted_name(first_name, last_name):
    full_name = f"{first_name} {last_name}"
    return full_name.title()

musician=get_formatted_name('jimi','hendrix')
print(musician)

 3.2实参可选

使实参之一默认为空,通过条件判断来实现实参可选的方法

注:字符串可用''来代表空,数值变量可用None

函数也可以返回列表或字典

def get_formatted_name(first_name, last_name, middle_name=''):
    if middle_name:
        full_name = f"{first_name} {middle_name} {last_name}"
    else:
        full_name= f"{first_name} {last_name}"
    return full_name.title()

musician=get_formatted_name('jimi','hendrix','lee')
print(musician)

 四、传递列表

可以将列表作为实参传递,函数可以修改作为实参传递过来的列表,如果需要禁止函数修改,则可以将列表的副本作为实参传递。

def print_fun(list):
    list[1]='wwes'
    print(list)

list=['dsa','sdas','sda']

print_fun(list[:])         #将切片作为副本传递,函数中只会修改切片而不影响原列表
print(list)

五、传递任意数量的实参

1.使用方法

当预先不知道函数需要接受多少个实参时,可以使用下述方法:

def make_pizza(*toppings):
    print(toppings)

make_pizza('pepperoni')
make_pizza('mushrooms','green peppers','extra')

原理:函数声明中使用*toppings形参创建了一个空元组,该元组会将所有实参都收入其中,即使用该方法后,所有的实参都按顺序放在元组toppings中。

注:当需要同时使用任意数量实参和必需实参时需要将任意数量实参放在最后

2.使用任意数量的关键字实参

需要接受任意数量的实参,但预先不知道传递给函数的是什么信息,这种情况下可将函数编写成能够接受任意数量的键值对。例:

def build_profile(first, last, **user_info):
    user_info['first_name'] = first 
    user_info['last_name'] = last
    return user_info

user_profile = build_profile('p', 'h' ,
                             location = 'shenyang',
                             filed = 'physics')
print(user_profile)

**user_info形参创建了一个空字典将后续任意数量的实参存储进入该字典中,可在函数中对该字典进行修改或使用。

六、将函数存储在模块

创建模块需要先在主程序目录下创建一个拓展名为.py的文件,包含要导入到程序中的代码。在下面的例子中创建一个名为pizza的模块,在模块中含有一个名为make_pizza的函数,将模块与主程序放在同一目录下,即可在主程序中使用模块中的函数。

#pizza.py
def make_pizza(size, *toppings):
    print(f"{size} {toppings}")
#main_program.py
import pizza

pizza.make_pizza(16,'sad','sae')

也可以只导入特定的函数(此时不需要再加模块名):

#main_program.py
from pizza import make_pizza 

make_pizza(16,'sad','sae')

也可以将模块中的函数取别名以防止冲突:

#main_program.py
from pizza import make_pizza as mp

mp(16, 'pepperoni')

可以给模块取别名:

#main_program.py
inmport pizza as p

p.make_pizza(16, 'h')

也可以导入模块中的所有函数:

from pizza import *

make_pizza(16,'h')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值