Python基础学习09————函数

Python基础学习————函数

1. 重新认识变量

  • python解释器寻找变量的过程如下,遵循LEGB原则。
  • Local(局部作用域) —> Embeded(嵌套作用域) —> Global(全局作用域)
    —> Built-in(内置作用域) —>还没有找到会发生( NameError: name … not defined)错误
1.1 变量的类型
  • 根据变量的作用域不同可以把变量分为全局变量和局部变量
  • 以前我们定义的变量基本都是全局变量,程序实现的业务功能也比较单一
1.2 全局变量
  • 定义全局变量的关键字,global
  • 语法,global a ,表示定义一个全局变量a
  • 一般不写在任意函数中的变量,也叫全局变量
1.3 局部变量
  • 局部变量指放在函数里的变量,作用域只在这一个模块中
1.4 全局变量和局部变量同在一个程序分析
x = 100


def foo():
    # 如果我不想在函数foo中定义局部变量x,想直接使用全局变量x,应该怎么做???
    # global x
    x = 200

    def bar():
        # 如果我不想在函数bar中定义局部变量x,想直接使用嵌套作用域中的x,应该怎么做???
        nonlocal x
        x = 300
        print(x) # 300

    bar()
    print(x) # 300


foo()
print(x) # 100
  • 对于全局变量和局部变量的定义需要根据变量的作用域进行具体分析

函数中的局部变量和全局变量是两个互不相同,不影响的存在

2. 函数

2.1 引入函数的背景
  • 随着我们后面不断的学习,你可能以及发现了我们在编写代码时好多都是重复代码。这是你也许会选择直接粘贴或再敲一边也许当下可行,当如果我们要把同样的功能应用在不可场景上千遍,这是你不得不寻找方法来解决这种弊端。
2.2 函数的定义
  • 定义函数的关键字,def

  • 语法 : def 函数名(参数):

    ​ 执行体

  • 函数可以有参数也可以没有,同时参数还可以指定默认值

  • 函数可以有返回值,也可以没有

2.3 函数的使用
  • 函数的使用非常简单,只需要通过调用和传入对应的参数即可
# 定义函数
def max_value(m,n):
    """ 自定义实现比较两个指的大小"""
    if m>n :
        return m
    else:
        return n
   

# 调用函数
mx_value = max_value(3,5)
print(mx_value) # 5

  • 函数的功能就是把需要实现的功能进行封装,可以进行无限制的调用
3. 函数的应用案例
3.1 生成随机验证码
import string
import random


def captcha(length):
    """
    实现生成随机指定长度验证码

    :param length: 验证码长度
    :return: 返回指定长度验证
    """
    st = string.ascii_letters + string.digits
    return ''.join(random.choices(st, k=length)) 


def display(num,length):
    for _ in range(num):
        print(captcha(length))

# 调用
display(10,4)

"""
运行结果如下:
AK1P
KdnB
r0L2
rGQs
11V9
wxHt
cL7n
8kZp
FlTb
mRw3
"""
3.2 计算样本数据的极差
def peak_to_peak(l):
    """ 通过传入一个列表计算样本的极差"""
    min_num = min(l) # 获取最小值
    max_num = max(l) # 获取最大值
    distant = max_num - min_num
    return distant


print(peak_to_peak([1, 3, 56, 2, 86, 3])) # 85

简单总结

前面的学习为后面的学习打基础,函数可以把功能之间实现隔离对后期的修改也是非常变量的。虽然再编写过程会遇到各种问题,但后期使用比较便利。为了减少不必要的代码冗余现象,尽量使用函数的方式进行封装这样看起来代码的比较扁平,也减少了嵌套带来程序可读性的下降。

语录

学习的过程是可能需要付出很多心血, 但坚持是成为一个优秀数据分析师必然要经历的过程。
数据分析的学习之路, 并不是学的越多越好, 而是要将学习的方向明确好, 再使正确的力, 这样才可以在正确的方向 做正确的事。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值