欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)
  • 参数: 函数运行前需要告诉函数一些运行时需要的信息原料、数值,函数根据传入的参数,参与内部的逻辑运算。
  • 形参:函数定义的时候。占位、将要传进数值的“形式上的代表”。形参名可变,我们只关注形参的类型。
  • 实参: 函数调用的时候。传入函数的“实际具体数值”。注意实参的值要与形参的个数、类型保持一致。
  • 可能出现的错误:实参和形参个数或类型不一致报错。
  1. 函数有哪几种参数?
    位置参数,默认值的参数,可变参数
  2. 顺序有没有要求?
    默认值参数要在位置参数之后。可变参数有*args列表 kwargs字典,*args必须在kwargs之前。