函数的基础知识

181 阅读3分钟

一,函数

1.函数的作用:

将面向过程的代码变得模块化,能够实现重复调用。

input , print , type 等都是函数

2.函数的语法

‘’’ 1.使用def关键字定义函数,def后面跟函数名(本质:变量),圆括号和冒号 2.圆括号中放形参(形参是向函数内部传参的变量) 3.函数内部代码块通常第一行写多行注释,作为解释函数作用的注释。 4.代码块结束以后,使用return将函数内部产生的结果返回到函数外部 5.函数定义完,使用函数时叫做调用函数 6.调用函数时需要在圆括号中写实参传递给形参 ‘’

自定义计算x到y的和的函数

def rangeSum(x, y):
# 计算某个范围的和的函数
sum = 0
for i in range(x, y + 1):
sum += i
return sum

# 调用函数
print(rangeSum(1, 1000))

函数: 可以降低代码的冗余度,同时也可以给代码阅读者更加清晰的思路(一个函数代表一个功能)

3. return的作用

1.能够将函数内部产生的结果返回到函数外部。 2.能够结束函数的执行。

练习: 判断从1年到现在的年份是否是闰年
def years(x):
if x % 4 == 0 and x % 100 != 0:
return '%d年是闰年' % x
elif x % 400 == 0:
return '%d年是闰年' % x
else:
return '%d年是平年' % x

for i in range(1, 2023):
print(years(i))

总结:封装函数(自定义函数)在不改变原有代码执行逻辑,执行顺序的基础上做封装

函数执行的顺序: 从调用函数开始执行,函数定义时,程序不参与执行。

二,函数的参数

1.默认值参数

自定义一个函数,函数的功能是计算某个范围中整数的和,默认计算1-100的和 或者也可以自定义范围计算和

def rangeSum(x=1, y=100):
sum_ = 0
for i in range(x, y + 1):
sum_ += i
return sum_

print(rangeSum())
print(rangeSum(200, 1000))

2.位置参数

形参和实参之间的顺序需要一一对应

3.关键字参数(可以脱离顺序对应关系)

形参和实参之间的对应关系 关键字参数传参方式: 调用函数时:rangeSum(形参1=值1,形参2=值2)

4.位置参数和关键字参数混用

位置参数必须在前面,关键字参数在后面。

5.不定长参数(带*的变量)

不定长参数包含: args, **kwargs 一个的不定长参数必须放在两个*的不定长参数前面

*args接收位置参数后将所有数据转换为一个元组。 **kwargs接收关键字参数后将所有数据转换为一个字典。

6.参数指定数据类型

a.给形参赋予默认值,默认值是什么数据类型等于传参的数据类型 b.直接以“冒号数据类型(形参:int)”的形式 c.在定义函数时使用“->int” 表明此函数返回什么数据类型

三,全局变量和局部变量

按照作用域的不同可以将变量分为全局变量和局部变量。

1.全局变量

从变量定义开始到程序结束,整个范围都是全局变量的作用域。

2.局部变量

在函数或者类中创建的变量,从函数或类中变量定义开始到函数或类结束,此范围是局部变量的作用域

a = 0 # 全局变量

def selfTest():
print(a)
b = 1 # 局部变量
print(b)

selfTest()
print(a)

3.局部变量的作用或意义?

‘’’ 局部变量创建于函数或类中,当函数或类被调用时局部变量才开始创建 当函数或类结束时,局部变量被销毁 ‘’’

4.global 和 nonlocal

global: 在函数内部修改全局变量 ‘’’ global 变量 变量 = 值 ‘’’

nonlocal: 在函数A的函数B中修改函数A的变量 ‘’’ nonlocal 变量 变量 = 值 ‘’’