Python函数


前言

为了减少重复代码出现的次数,减少冗余,因此出现了函数;函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。接下来主要介绍函数的定义以及使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、函数的定义

"""
函数格式
def 函数名():
    函数体

"""
# 无参数无返回值的函数
def f1():
    print("我是f1函数")
# 有参数无返回值的函数
def f2(num):
    print("我是f2函数")
# 无参数有返回值的函数
def f3():
    print("我是f3函数")
    return 1
# 有参数有返回值的函数
def f4(num):
    print("我是f4函数")
    return num + 1

def f5():
    pass   # 为了函数结构完整性添加pass,常用作占位语句

二、使用方法

1.函数的参数

"""
函数的参数
当函数调用时,可向函数传参

**kwargs  字典不定长 接收键值对形式参数,例如: a = 1
*args 元组不定长  接收剩下的
"""
def f6(*args, **kwargs):
    print(args)
    print(kwargs)

# 调用函数
f6(1, 2, 3, {"name": "Pyhton", "age":60}, [1, 2, 3], a = 1, b = 6)
# 执行结果:
(1, 2, 3, {'name': 'Pyhton', 'age': 60}, [1, 2, 3])
{'a': 1, 'b': 6}

2.函数的作用域

函数内部的变量,只能作用于函数或循环体内部,称为局部变量; 在函数外部定义的变量,称为全局变量。
def f7():
    num = 20  # num为局部变量,作用于函数内
    print(num)
num = 10  # 全局变量,作用于全局
print(num)
f7()
print(num)
10
20
10
global 声明全局变量 针对不可变数据,必须使用global才可以修改 
可变数据:列表、字典、集合
不可变数据:数值、字符串、元组

3.闭包

闭包:外层函数返回内层函数的函数体
def f8():
    def f9():
        print("我是内部函数")
    return f9

f = f8()
f()
# 结果:
我是内部函数

4.函数的递归调用

函数的递归:在函数内部调用该函数
# 实例:利用递归实现1+2+3+……+n的和
def f10(i):
    if i == 1:
        return 1
    return i + f10(i-1)

print(f10(10))
print(f10(20))
print(f10(100))

55
210
5050

5.匿名函数

匿名函数 lambda 自带return功能
f = lambda x: x+1   # 传参x,返回x+1
# 实例:根据列表中每个元组内的第二个元素排序
list1 = [(3, 2, 1, 4), (2, 1, 5, 7), (6, 7, 1, 8), (4, 5, 1, 0)]
list1.sort(key=lambda x: x[1])
print(list1)

[(2, 1, 5, 7), (3, 2, 1, 4), (4, 5, 1, 0), (6, 7, 1, 8)]

三、一些小练习

# 判断用户输入是否是一个手机号
while True:
    tel = input("请输入手机号:")
    if tel.isdigit() and len(tel) == 11 and tel[0] == '1' :
        print(tel)
        break
    else:
        print("请输入正确手机号!")
        continue

# 判断是否为素数
def isPrime(num):
    if num == 2:
        return True
    for i in range(2, num-1):
        if num % i != 0:
            continue
        else:
            return False
    return True

大家可以自己练一练!


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值