python函数
一、函数的定义与调用
1、函数的作用
- 实现代码重用
- 模块化编程(面向过程)
用户到ATM机取款:
- 输入密码后显示“选择功能”界面
- 查询余额后显示“选择功能”界面
- 取钱之后显示“选择功能”界面
问:1、2、3操作之后都会显示选择功能界面,那么“选择功能”界面需要重复输出给用户,怎么实现?
答:使用函数,把选择功能的相关代码封装起来,当需要使用的时候直接调用函数,这样就可以实现代码的复用了
2、什么是函数
函数是一个被命名的,独立的,完成特定功能的代码段,其可能给调用它的程序一个返回值。
- 被命名的:在python中,大多函数都有各自的函数名
- 独立的,完成特定功能的代码段:函数功能要专一,专门为了完成某个功能而定义
- 返回值:当函数执行完毕之后,其可能会返回一个值给函数调用处
3、函数的定义与调用
语法:
def 函数名称([参数列表]):
函数体
...
[return 返回值]
- 函数在定义时,只是向内存中保存了一个函数的名称,其内部的代码并没有真正的执行;只有在函数调用时,函数体才真正执行
函数的调用:
函数名(参数)
- 在不同的需求中,函数的参数与返回值可有可无
- 函数必须先定义后使用
def greet(name):
# print(f'{name}老师,您好!')
return name + '老师,您好!' # 使用返回值可以使函数更加灵活的利用
result1 = greet('张民')
print(result1)
- 根据传入不同的参数,可以输出不同的结果
二、函数的返回值
-
函数中可以存在多个return,但是只有第一个return会执行。因为函数一旦遇到函数返回值,会立即执行两个操作:返回return后面的结果,强制终止此函数的继续执行。
-
在其他编程语言中,函数只能返回一个结果,但是在python中,一个函数支持返回多个结果。结果与结果之间使用逗号隔开,返回值的数据类型为元组类型
def func1(): return 10, 20, 30 result = func1() print(result) print(f'返回值的数据类型为{type(result)}')
-
如果一个函数没有返回值,使用打印这个函数的调用结果会输出得到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)
四、函数的嵌套
1、什么是函数嵌套
所谓函数嵌套就是在一个函数里面又调用了另外一个函数。
函数的执行流程:
def testA():
print('----- testA start -----')
print('----- testA函数体代码... -----')
print('----- testA end -----')
def testB():
print('----- testB start -----')
# 函数嵌套:一个函数里面又调用了另外一个函数
testA()
print('----- testB end -----')
# 调用函数 查看函数嵌套的执行过程
testB()
- 体现了顺序原则
五、函数案例
案例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())
标签:return,函数,python,str1,print,返回值,def
From: https://www.cnblogs.com/luoluoange/p/17694693.html