L4函数
程序员文章站
2024-03-18 11:34:22
...
函数
# 引题
# 圆的面积=π*半径的平方,
r1=1
r2=2.5
r3=99
square1 = 3.14 * r1 * r1
square2 = 3.14 * r2 * r2
square3 = 3.14 * r3 * r3
print(square1)
print(square2)
print(square3)
def calculate_square(r):
print('圆面积',3.14*r*r)
print(calculate_square(3))
print(calculate_square(1))
print(calculate_square(99))
- 函数 function: 将重复公共的代码抽象出来,多次调用。
- 封装代码:函数把业务逻辑打包起来,我们使用时直接调用,不必关心内部是如何实现的,降低项目的实现难度。实现某一种功能。
- 好处:减少重复代码节省代码量。模块逻辑清晰。
- 语法:
- 函数定义:关键字def(define) 函数名(参数): 语句块
- 参数: 函数运行前需要告诉函数一些运行时需要的信息原料、数值,函数根据传入的参数,参与内部的逻辑运算。
- 函数调用: 函数名(参数) 。
全局变量global
global 显示声明变量为全局变量
total = 0
def add1():
global total
total = total + 1
add1()
add1()
add1()
add1()
add1()
print(total) >>> 5
return函数:
- 返回结果
- 跳出方法,不再运行下面的语句,有点类似循环中的break,
- 返回多个结果
def maximum(x, y):
message = ''
if x > y:
return x, '第一个数大'
elif x == y:
print('====')
return 0, '两个数相等'
else:
print('====')
return y, '第二个数大'
max_number = maximum(1, 2)
print(max_number)
# 多个返回值 解包
maxnumber, message = maximum(1, 2)
# ValueError: not enough values to unpack (expected 3, got 2)
print(maxnumber, message)
- 函数可以有多个返回值, return的时候逗号隔开
- 析构赋值、解包赋值:函数返回多少个值,就用多少个变量去接收,顺序一致。
(非重点)可变(动态)参数
*args 表示传入一串参数,列表类型的,参数过多时方便函数书写定义和调用更方便
def print_info(n=100, a=1 , b=2, c, d, f,e):
print(name)
print_info('小明')
print_info('小hon')
print_info('小bai')
calu(n=100, a=1 , b=2, c, d, f,e)
student_list = ['小明', '小红', '小白']
def print_info(*args):
for arg in args:
print(arg)
print_info(*student_list)
product_dict = {'name':'xbox', 'price':3000, 'weight':500 ,'cpu':'', 'gpu':''}
def print_info(**kwargs):
for k,v in product_dict.items():
print(k, v)
print_info(**product_dict)
- 参数: 函数运行前需要告诉函数一些运行时需要的信息原料、数值,函数根据传入的参数,参与内部的逻辑运算。
- 形参:函数定义的时候。占位、将要传进数值的“形式上的代表”。形参名可变,我们只关注形参的类型。
- 实参: 函数调用的时候。传入函数的“实际具体数值”。注意实参的值要与形参的个数、类型保持一致。
- 可能出现的错误:实参和形参个数或类型不一致报错。
- 函数有哪几种参数?
位置参数,默认值的参数,可变参数 - 顺序有没有要求?
默认值参数要在位置参数之后。可变参数有*args列表 kwargs字典,*args必须在kwargs之前。
上一篇: 自定义模板类(循环队列)
下一篇: 1014 Waiting in Line