Python初学(函数1)

定义

def 函数名([参数,......]):

    函数体

函数名:建议用下划线分割的方式 get_name()  或者search()

函数体:封装重复内容 要注意缩进

例如封装一个获取四位验证码的函数。

import random

def generate_code():
    s = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
    code = ''
    for i in range(4):
        r = random.choice(s)
        code += r
    print(code)

调用

函数名()

generate_code()

参数

单个参数

def 函数名(参数1):

    函数体

参数就是在调用函数时向函数中传值的作用

def generate_code(n):
    s = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
    code = ''
    for i in range(n):
        r = random.choice(s)
        code += r
    print(code)


generate_code(4)

多个参数

def 函数名(参数1,参数2,.....):

    函数体

def get_sum(a, b):
    if isinstance(a, int) == isinstance(b, int):
        print(a + b)
    else:
        print('类型错误!')


get_sum(1,2)

默认值

在定义函数的时候,有一个或多个参数已经赋值

def 函数名(参数1,参数2,参数3 = 值,参数4 = 值,.....):

    函数体

调用特点:调用时有默认值参数可选择传或不传

例如

def borrow_book(book_name, number=1):
    print('书名{}借阅{}本'.format(book_name, number))


borrow_book('西游记')
# 输出结果为书名西游记借阅1本
borrow_book('红楼梦',2)
# 输出结果为书名红楼梦借阅2本

注意:在定义函数的时候,普通参数要位于默认值参数的前面。

关键字

再举个例子

def borrow_book(book_name, username, number=1, school='学校图书馆'):
    print('{}从{}借走了{}本{}'.format(username, school, number, book_name))


borrow_book('西游记', '我')
# 输出结果我从学校图书馆借走了1本西游记

如果我只想改变school的参数值,如果去做呢?需要在调用方式时使用关键字参数赋值。

borrow_book('西游记', '我',school='大学')
# 输出结果为我从大学借走了1本西游记

注意:默认参数的顺序是固定的,调用时可以使用关键字参数赋值,可以改变顺序。

列表参数

library = ['西游记', '红楼梦', '三国演义', '水浒传']

def add_book(book_name):
    library.append(book_name)
    print('添加图书成功')


def show_book(books):
    for book in books:
        print(book)


add_book('测试测试')
# 输出结果 添加图书成功
show_book(library)
# 输出结果 西游记 红楼梦 三国演义 水浒传 测试测试

可变参数

*args

args默认会把接收到数据转换成元组

def get_sum(*args):
    print(args)  # 输出结果为(1, 3, 4)
    sum = 0
    for i in args:
        sum += i
    print(sum)
get_sum(1,3,4)
装包

def  函数  (*args): ----------------------》此时会出现装包操作

       pass

函数(1,2,3,4)

def get_sum(*args):
    sum = 0
    for i in args:
        sum += i
    print(sum)   
get_sum(1, 2, 3, 4, 5, 7)
拆包

list,tuple,set

调用的时候:

函数(*list)   |  函数(*tuple) | 函数(*set)

list1 = [20, 30, 50]
def get_sum(*args):
    sum = 0
    for i in args:
        sum += i
    print(sum)
get_sum(*list1)

**kwargs

关键字参数,key = value的形式,在函数调用的时候必须传递关键字参数,才可以转换成key:value的形式,装到字典中。

def show_book(**kwargs):
    print(kwargs)

show_book()
# 输出结果{}
装包
def show_book(**kwargs):
    for k, v in kwargs.items():
        print(k, v)

show_book(book_name = '西游记',author = '吴承恩',number = '10')
# 输出结果{'book_name': '西游记', 'author': '吴承恩', 'number': '10'}
拆包
def show_book(**kwargs):
    for k, v in kwargs.items():
        print(k, v)

book = {'book_name': '西游记', 'author': '吴承恩', 'number': '10'}
show_book(**book)

*args 和 **kwargs同时使用

def show_book(*args, **kwargs):
    print(args)
    print(kwargs)


book = {'book_name': '西游记', 'author': '吴承恩', 'number': '10'}
show_book('1', '2', '3', **book)
# 输出结果('1', '2', '3')   {'book_name': '西游记', 'author': '吴承恩', 'number': '10'}

返回值

可以使用return关键字

def  函数(参数,....):

    return xxxx

当函数调用时通过return向外返出值

注意:只要函数有返回值,需要接收

def get_sum(*args):
    total = 0
    for i in args:
        total += i
    return total
total = get_sum(1, 2, 3, 4, 5)
print(total)
# 输出结果15

如果使用return返回多个值时,会以元组的方式返回,例如:

def get_maxandmin(numbers):
    for i in range(0, len(numbers) - 1):
        for j in range(0, len(numbers) - 1 - i):
            if numbers[j] > numbers[j + 1]:
                numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]

    min = numbers[0]
    max = numbers[-1]
    return min, max


list = [50, 20, 30, 1, 5, 15, 40]
result = get_maxandmin(list)
a,b = get_maxandmin(list)
print(result)
# 输出结果为(1, 50)
print(a,b)
# 输出结果为1  50

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值