欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
- 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
- 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- 一.简单介绍
- 1.什么是 python 函数?
- 2.python 函数组成?
- 二.基本函数
- 1.print()
- 2.len()
- 3.input()
- 4.range()
- 5.type()
- 6.str()
- 7.int()
- 8.float()
- 9.max()
- 10.min()
- 11.pow()
- 12.divmod()
- 三.进阶函数
- 1.文档说明
- 2.函数嵌套
- 3.变量作用域
- 4.global
- 5.多返回值
- 6.函数参数
- 7.关键字参数
- 8.默认参数
- 9.不定长参数
- 10.关键字不定长
- 11.函数作为参数
- 12.lambda 匿名函数
- 13.range 函数
- 14.all()函数
- 15.递归函数
- 四.实战演练
- 1.定义函数
- 2.list 列表循环
- 3.带参数
- 4.返回值
- 5.None
- 6.综合练习
一.简单介绍
1.什么是 python 函数?
在 Python 中,函数是一组用于执行特定任务或操作的可重复、可调用的代码块。函数允许你将代码模块化,提高代码的可读性和可维护性。
2.python 函数组成?
在 Python 中,函数通常由以下几个组成部分:
函数定义: 定义函数的关键字是
def
,后面跟着函数的名称和一对圆括号,括号里是函数的参数列表。def my_function(parameter1, parameter2):# 函数体# 可以包含一系列语句来执行特定的任务
参数: 函数可以接受零个或多个参数,这些参数是在调用函数时传递给函数的值。参数是可选的,函数可以没有参数。
def greet(name):print("Hello, " + name + "!")
返回值: 函数可以返回一个值给调用者。使用
return
语句来指定函数的返回值。def add(a, b):result = a + breturn result
调用
add(2, 3)
将返回5
。函数调用: 要执行函数中的代码,需要调用函数。调用函数时,提供函数所需的参数。
greet("Alice")
这将输出 “Hello, Alice!”。
函数使得代码结构更加清晰,也提高了代码的可复用性。在 Python 中,有许多内置函数,同时你也可以自定义函数来执行你特定的任务。函数是 Python 编程中非常基础和重要的概念。
二.基本函数
1.print()
print(): 用于输出信息到控制台。
print("Hello, World!")
2.len()
len(): 用于获取序列(字符串、列表、元组等)的长度。
my_list = [1, 2, 3, 4, 5]length = len(my_list)
3.input()
input(): 用于从用户获取输入。
user_input = input("Enter something: ")
4.range()
range(): 用于生成一个指定范围的数字序列。
numbers = list(range(5))
5.type()
type(): 用于获取对象的类型。
x = 10data_type = type(x)
6.str()
str(): 将其他类型转换为字符串类型。
num = 42str_num = str(num)
7.int()
int(): 将其他类型转换为整数类型。
num_str = "42"num = int(num_str)
8.float()
float(): 将其他类型转换为浮点数类型。
num_str = "3.14"num = float(num_str)
9.max()
max(): 返回可迭代对象中的最大值。
max_value = max([1, 2, 3, 4, 5])
10.min()
min(): 返回可迭代对象中的最小值。
min_value = min([1, 2, 3, 4, 5])
11.pow()
在 Python 中,可以使用幂运算符 **
或内置函数 pow()
来计算一个数的立方。
使用幂运算符的示例:
x = 2cube = x ** 3print(cube)# 输出: 8
使用内置函数 pow()
的示例:
x = 2cube = pow(x, 3)print(cube)# 输出: 8
这两种方法都可以用来计算一个数的立方。你可以将 x
替换为任何你想要计算立方的数字。
12.divmod()
divmod()是 Python 内置函数之一,用于进行除法运算并同时返回商和余数。
divmod(x, y)
其中 x 和 y 是两个数字参数,函数将 x 除以 y,返回一个元组,元组中第一个元素是 x 除以 y 的商,第二个元素是余数。例如:
>>> divmod(10, 3)(3, 1)
这里 10 除以 3,商为 3,余数为 1,所以返回元组(3, 1)。
三.进阶函数
1.文档说明
在函数名称下面“”“”“”然后直接 enter 键,可以补充参数和返回值.
# 定义函数,进行文档说明def add(x, y):"""add函数可以接收2个参数,进行2数相加的功能:param x: 形参x表示相加的其中一个数字:param y: 形参y表示相加的另一个数字:return: 返回值是2数相加的结果"""result = x + yprint(f"2数相加的结果是:{result}")return resultadd(5, 6)
2.函数嵌套
# 定义函数func_bdef func_b():print("---2---")# 定义函数func_a,并在内部调用func_bdef func_a():print("---1---")# 嵌套调用func_bfunc_b()print("---3---")# 调用函数func_afunc_a()
3.变量作用域
num 的最终值还是 200,不会变为 500
num = 200def test_a():print(f"test_a: {num}")def test_b():num = 500print(f"test_b: {num}")test_a()test_b()print(num)
4.global
num 的最终值是 500
# global关键字,在函数内声明变量为全局变量num = 200def test_a():print(f"test_a: {num}")def test_b():global num# 设置内部定义的变量为全局变量num = 500print(f"test_b: {num}")test_a()test_b()print(num)
5.多返回值
# 演示使用多个变量,接收多个返回值def test_return():return 1, "hello", Truex, y, z = test_return()print(x)print(y)print(z)
6.函数参数
def user_info(name, age, gender):print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 位置参数 - 默认使用形式user_info('小明', 20, '男')
7.关键字参数
def user_info(name, age, gender):print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 关键字参数user_info(name='小王', age=11, gender='女')user_info(age=10, gender='女', name='潇潇')# 可以不按照参数的定义顺序传参def add(x, y):return x + yresult = add(y=2, x=1)print(result)# 输出3
8.默认参数
请求参数默认:
def user_info(name, age, gender):print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 缺省参数(默认值)def user_info(name, age, gender):print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")user_info('甜甜', gender='女', age=9)
方法上默认:
def add(x=0, y=0):return x + yresult = add()print(result)# 输出0
9.不定长参数
# 不定长 - 位置不定长, *号# 不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入def user_info(*args):print(f"args参数的类型是:{type(args)},内容是:{args}")user_info(1, 2, 3, '小明', '男孩')
10.关键字不定长
不定长关键字参数指的是函数可以接受任意数量的关键字参数,这些参数将被收集到一个字典中,并作为一个参数传递给函数。不定长关键字参数用两个星号 **
来表示。
# 不定长 - 关键字不定长, **号def user_info(**kwargs):print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}")user_info(name='小王', age=11, gender='男孩')#args参数的类型是:,内容是:{'name': '小王', 'age': 11, 'gender': '男孩'}
11.函数作为参数
# 定义一个函数,接收另一个函数作为传入参数def test_func(compute):result = compute(1, 2)# 确定compute是函数print(f"compute参数的类型是:{type(compute)}")print(f"计算结果:{result}")# 定义一个函数,准备作为参数传入另一个函数def compute(x, y):return x + y# 调用,并传入函数test_func(compute)
12.lambda 匿名函数
# 定义一个函数,接受其它函数输入def test_func(compute):result = compute(1, 2)print(f"结果是:{result}")# 通过lambda匿名函数的形式,将匿名函数作为参数传入def add(x, y):return x + ytest_func(add)test_func(lambda x, y: x + y)
Lambda函数:
# 使用Lambda函数f = lambda x, y: x + yprint(f(2, 3)) # 输出 5
13.range 函数
for i in range(n):range(start, stop, step) #分别是起始、终止和步长range(3) #即:从0到3,不包含3,即0,1,2range(1,3) #即:从1到3,不包含3,即1,2range(1,3,2)#即:从1到3,每次增加2,因为1+2=3,所以输出只有1#如果改成range(1,5,2),就会输出1和3matrix = [0 for i in range(4)]#[0, 0, 0, 0]for j in range(i + 1, n + 1):#从i+1到n+1,不包含n+1
14.all()函数
any()实现了或(OR)运算all()实现了与(AND)运算#对于any(iterables),如果可迭代对象iterables中任意存在每一个元素为True则返回True。特例:若可迭代对象为空,比如空列表[],则返回False。
15.递归函数
def factorial(n):if n == 0:return 1else:return n * factorial(n - 1)result = factorial(4)print(result)# 输出24
四.实战演练
1.定义函数
# 定义一个函数,输出相关信息def say_hi():print("Hi 我是黑马程序员,学Python来黑马")# 调用函数,让定义的函数开始工作say_hi()
2.list 列表循环
def list_while_func():"""使用while循环遍历列表的演示函数:return: None"""my_list = ["传智教育", "黑马程序员", "Python"]# 循环控制变量通过下标索引来控制,默认0# 每一次循环将下标索引变量+1# 循环条件:下标索引变量 < 列表的元素数量# 定义一个变量用来标记列表的下标index = 0# 初始值为0while index < len(my_list):# 通过index变量取出对应下标的元素element = my_list[index]print(f"列表的元素:{element}")# 至关重要 将循环变量(index)每一次循环都+1index += 1def list_for_func():"""使用for循环遍历列表的演示函数:return: None"""my_list = [1, 2, 3, 4, 5]# for临时变量in数据容器:for element in my_list:print(f"列表的元素有:{element}")# list_while_func()list_for_func()
3.带参数
# 定义2数相加的函数,通过参数接收被计算的2个数字def add(x, y, z):result = x + y + zprint(f"{x} + {y} + {z}的计算结果是:{result}")# 调用函数,传入被计算的2个数字add(5, 6, 7)
4.返回值
# 定义一个函数,完成2数相加功能def add(a, b):result = a + b# 通过返回值,将相加的结果返回给调用者return result# 返回结果后,还想输出一句话print("我完事了")# 函数的返回值,可以通过变量去接收r = add(5, 6)print(r)
5.None
# 主动返回None的函数def say_hi2():print("你好呀")return Noneresult = say_hi2()print(f"无返回值函数,返回的内容是:{result}")print(f"无返回值函数,返回的内容类型是:{type(result)}")# None用于if判断def check_age(age):if age > 18:return "SUCCESS"else:return Noneresult = check_age(16)if not result:# 进入if表示result是None值 也就是Falseprint("未成年,不可以进入")# None用于声明无初始内容的变量name = None
6.综合练习
"""演示函数综合案例开发"""# 定义全局变量money namemoney = 5000000name = None# 要求客户输入姓名name = input("请输入您的姓名:")# 定义查询函数def query(show_header):if show_header:print("-------------查询余额------------")print(f"{name},您好,您的余额剩余:{money}元")# 定义存款函数def saving(num):global money# money在函数内部定义为全局变量money += numprint("-------------存款------------")print(f"{name},您好,您存款{num}元成功。")# 调用query函数查询余额query(False)# 定义取款函数def get_money(num):global moneymoney -= numprint("-------------取款------------")print(f"{name},您好,您取款{num}元成功。")# 调用query函数查询余额query(False)# 定义主菜单函数def main():print("-------------主菜单------------")print(f"{name},您好,欢迎来到黑马银行ATM。请选择操作:")print("查询余额\t[输入1]")print("存款\t\t[输入2]")print("取款\t\t[输入3]")# 通过\t制表符对齐输出print("退出\t\t[输入4]")return input("请输入您的选择:")# 设置无限循环,确保程序不退出while True:keyboard_input = main()if keyboard_input == "1":query(True)continue# 通过continue继续下一次循环,一进来就是回到了主菜单elif keyboard_input == "2":num = int(input("您想要存多少钱?请输入:"))saving(num)continueelif keyboard_input == "3":num = int(input("您想要取多少钱?请输入:"))get_money(num)continueelse:print("程序退出啦")break# 通过break退出循环
觉得有用的话点个赞
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!
Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!