python中的函数

python函数

一、函数的定义与调用

1、函数的作用

  • 实现代码重用
  • 模块化编程(面向过程)
image-20230911091902409

用户到ATM机取款:

  1. 输入密码后显示“选择功能”界面
  2. 查询余额后显示“选择功能”界面
  3. 取钱之后显示“选择功能”界面

:1、2、3操作之后都会显示选择功能界面,那么“选择功能”界面需要重复输出给用户,怎么实现?

:使用函数,把选择功能的相关代码封装起来,当需要使用的时候直接调用函数,这样就可以实现代码的复用

2、什么是函数

函数是一个被命名的,独立的,完成特定功能的代码段,其可能给调用它的程序一个返回值

  • 被命名的:在python中,大多函数都有各自的函数名
  • 独立的,完成特定功能的代码段:函数功能要专一,专门为了完成某个功能而定义
  • 返回值:当函数执行完毕之后,其可能会返回一个值给函数调用处

3、函数的定义与调用

语法:

def 函数名称([参数列表]):
	函数体
	...
	[return 返回值]
  • 函数在定义时,只是向内存中保存了一个函数的名称,其内部的代码并没有真正的执行;只有在函数调用时,函数体才真正执行

函数的调用:

函数名(参数)
  • 在不同的需求中,函数的参数与返回值可有可无
  • 函数必须先定义后使用
def greet(name):   
    # print(f'{name}老师,您好!')
    return name + '老师,您好!' # 使用返回值可以使函数更加灵活的利用

result1 = greet('张民')
print(result1)
  • 根据传入不同的参数,可以输出不同的结果

二、函数的返回值

  1. 函数中可以存在多个return,但是只有第一个return会执行。因为函数一旦遇到函数返回值,会立即执行两个操作:返回return后面的结果,强制终止此函数的继续执行。

  2. 在其他编程语言中,函数只能返回一个结果,但是在python中,一个函数支持返回多个结果。结果与结果之间使用逗号隔开,返回值的数据类型为元组类型

    def func1():
        return 10, 20, 30
    
    result = func1()
    print(result)
    print(f'返回值的数据类型为{type(result)}')
    

    image-20230911175701822

  3. 如果一个函数没有返回值,使用打印这个函数的调用结果会输出得到None。即如果一个函数没有返回值,相当于return None

三、函数的说明文档

函数的说明文档:相当于函数的说明书,在这个说明文档中我们需要标注这个函数的作用拥有的参数以及最终的返回值

定义函数函数的说明文档:

def 函数数名(参数列表):
""" 说明文档位置  """
	函数体
	return 返回值

查看函数说明文档:

help(函数名)
  • 在pychram中对于光标所在函数名可以使用 快捷键:Ctrl + Q 查看函数文档

案例演示:

def sum_num(num1, num2):
    """
    sum_num这个函数主要用来实现对两个数的求和
    :param num1:int,代表第一个参数
    :param num2:int,代表第二个参数
    :return:返回num1与num2的求和
    """
    result = num1 + num2
    return result

help(sum_num)

image-20230911201645859

四、函数的嵌套

1、什么是函数嵌套
所谓函数嵌套就是在一个函数里面又调用了另外一个函数。

函数的执行流程:

def testA():
    print('----- testA start -----')
    print('----- testA函数体代码... -----')
    print('----- testA end -----')

def testB():
    print('----- testB start -----')
    # 函数嵌套:一个函数里面又调用了另外一个函数
    testA()
    print('----- testB end -----')
# 调用函数 查看函数嵌套的执行过程
testB()

image-20230911205042996

  • 体现了顺序原则

五、函数案例

案例1

# 编写一个函数 带有一个参数  输入信息'1.2.3.4.5' 返回'5-4-3-2-1'

# 方法1
def return1(str1):
    str1 = str1.split('.')
    str1.reverse()
    str2 = '-'.join(str1)
    return str2


print(return1('1.2.3.4.5'))


# 方法2
def return2(str1):
    str1 = str1[::-1]
    str2 = str1.replace('.', '-')
    return str2


result = return2('1.2.3.4.5.6')
print(result)

案例2:随机生成4位验证码

"""
使用函数,随机生成四位长度的验证码
可以起到防止恶意攻击的功能:(每次登陆生成的验证码都是不同的)防止暴力破解账号与密码
"""
import random

# 方法1
def func1():
    # 定义一个字符串:
    str1 = '0123456789abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWSYZ'
    randnum1 = random.randint(0, len(str1) - 1)
    randnum2 = random.randint(0, len(str1) - 1)
    randnum3 = random.randint(0, len(str1) - 1)
    randnum4 = random.randint(0, len(str1) - 1)
    str2 = str1[randnum1] + str1[randnum2] + str1[randnum3] + str1[randnum4]
    return str2


print(func1())


# 方法2:
def func2():
    # 定义一个字符串:
    str1 = '0123456789abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWSYZ'
    # 定义一个空字符串,接收验证码
    code = ''
    # 循环要完成两件事:1.每次循环从str1中随机获得一个字符。2、将随机获得的字符追加到Code中
    for i in range(4):
        code += str1[random.randint(0, len(str1) - 1)]
    return code

print(func2())

image-20230911220641263

posted @   七落安歌  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示