Python -- 函数

1、一个简单的函数

函数用关键字def来定义,传参时不用指定参数类型
para:形参 parameter
arg:实参 argumen
形参的类型和实参的类型一致

def my_fun(para):
    print(para)


def back_item(src, dest):
    dest = src


my_fun('arg')
my_fun([1, 3, 4])
my_fun({1: 'name', 2: 'age'})

d = 0
# 同c语言一样d的值不会被改变
back_item(1, d)
print(f"d = {d}")

在这里插入图片描述

2、多参数函数

形参可设置默认值,但要放在未设置默认值的形参的后面
可使用关键字实参为函数赋值,可不考虑实参的顺序

def animal_introduce(name, num=4):
    print(f"This is {name}, it got {num}")


animal_introduce('aa', 2)
animal_introduce('bb')
animal_introduce(name='cc', num=3)
animal_introduce(num=1, name='dd')

在这里插入图片描述

3、返回值

3.1、简单的返回

给中间名设置一个空的默认值,使其变成可选输入项

def get_name(first_name, last_name, middle_name=None):
    if middle_name:
        full_name = first_name + ' ' + middle_name \
                    + ' ' + last_name
    else:
        full_name = first_name + ' ' + last_name
    return full_name.title()


name = get_name('tom', 'hanks')
print(name)
name = get_name('Stanley', 'Martin', 'Lieder')
print(name)

在这里插入图片描述

3.2、返回列表和字典

def get_info(first_name, last_name, age=None):
    person = {'first': first_name, 'last': last_name}
    if age:
        person = [first_name, last_name, age]
    return person

info_dictionary = get_info('aa', 'cc')
print(info_dictionary)
info_list = get_info('dd', 'ee', 20)
print(info_list)

在这里插入图片描述

3.3、多个返回值

多个返回值,实际上传出的是一个元组

def my_fun():
    name = 'XiaoMing'
    age = 11
    return name, age


info = my_fun()
print(info)
n, a = info
print(n,a)

在这里插入图片描述

4、传入列表

传进函数的列表可被修改
不修改列表,可传入列表的副本

def backup_list(src_list, dest_list):
    for item in src_list:
        dest_list.append(item)


my_list = ['aa', 'bb', 'cc', 123]
bak_list=[]

# 传递列表的副本,列表不会被修改
# backup_list(my_list,bak_list[:])

backup_list(my_list[:],bak_list)
print(bak_list)

在这里插入图片描述

5、传入任意数量的实参

5.1、以元组和字典的形式

*args:让python创建一个名为args的空元组
**kwargs:让python创建一个名为kwargs的空字典
命名不一定非得是以上两个

def create_tuple(*args):
    for arg in args:
        print(arg, end=',')


def create_dictionary(**kwargs):
    print(kwargs)


create_tuple(1, 2, 'aa', 'abcd')
print()
create_dictionary(name='aa', age=1, sex='man')

在这里插入图片描述

5.2、形参的排列顺序

形参的顺序只能按:未指定默认值,指定默认值,*,**来排
即下面的顺序

def my_fun(name, age=12, *args, **kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)


# 后面的实参关键字不能再包含name,age
my_fun('XiaoMing', 20, 'aa',
       'bb', 'cc',
       item='dd', sex='man')

在这里插入图片描述

6、将函数储存在模块中

可将函数存储在一个被称为模块的独立文件中(类似c语言库)
通过import可导入模块
通过from可导入指定函数

创建顺序
1、在主程序的目录下创建一个名为UserFunction.py的文件
2、在Userfunction.py创建一个函数
3、在主程序中导入该模块(Userfunction)
4、在主程序中调用模块中的函数
5、使用as可以改模块和函数指定别名

  • UserFunction.py
def print_hello():
    print('hello', end=' ')


def print_world():
    print('world')
  • main.py
# 1 导入模块
import UserFunction as uf
# 2 导入模块的某个函数
from UserFunction \
    import print_world as pw
# 3 导入模块里所有的函数,注意避免与主程序函数名重复
from UserFunction import *

uf.print_hello()  # 执行该语句只需要有1

pw()  # 执行该语句只需要有2

# 执行下面的语句只需要有3
print_hello()
print_world()

在这里插入图片描述

笔记来源:《Python编程 从入门到实践》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值