您的位置:首页 > 游戏 > 手游 > 佛山网中互联网服务有限公司_上海工商网上注册大厅_免费的十大免费货源网站_嘉兴seo外包公司

佛山网中互联网服务有限公司_上海工商网上注册大厅_免费的十大免费货源网站_嘉兴seo外包公司

2024/10/5 13:32:31 来源:https://blog.csdn.net/weixin_58305115/article/details/142267539  浏览:    关键词:佛山网中互联网服务有限公司_上海工商网上注册大厅_免费的十大免费货源网站_嘉兴seo外包公司
佛山网中互联网服务有限公司_上海工商网上注册大厅_免费的十大免费货源网站_嘉兴seo外包公司

目录

函数的定义与调用

特点

语法格式 

函数的参数

函数的返回值

函数嵌套调用

变量的作用域

局部变量

全局变量

函数的多种参数

位置参数

关键字参数

默认参数

可变参数


函数的定义与调用

python函数需要使用def关键字来定义,需要先定义,后调用

特点:

  • 先定义,后调用
  • 不调用,不执行
  • 调用一次,执行一次

语法格式 

# 定义函数

def 函数名():

        代码1

        ...

# 调用函数

函数名()

编写一个show()函数,并在函数中输出:bug虐我千百遍, 我待bug如初恋。

def show():print("bug虐我千百遍, 我待bug如初恋。")show()

函数的参数

当在定义函数时,设定了参数,则可称该函数为:有参函数。反之,没有参数的函数,称为:无参函数。

(1)形参是指形式参数,表示在定义函数时的参数;

(2)实参是指实际参数,表示在调用函数时传递的参数值,具有实际意义。

有参函数

def 函数名(参数1,参数2,...):  # 形参
    代码1
    代码2
    ...

函数名(参数值1,参数值2,...)  # 实参

定义一个函数,用于求解两个数之和;

def sum_num(a,b):sum = a + bprint(f"两个数的和:{sum}")sum_num(2,4)  # 6
sum_num(7,4)  # 11

函数的返回值

函数的返回值指的是:当函数完成一件事情后,最后要返回给函数的结果。

def 函数名([参数1, 参数2, ...]):
    代码1
    代码2
    ...
    return 值

...

print(函数名(实参,实参,...))

:

(1)若要给函数返回结果,需要使用return关键字;

(2)return关键字的作用:把结果返回给函数;结束函数;

(3)当函数没有返回值时,默认返回None。

(1)定义一个函数1,用于求解两个数之积,并把积返回给函数;

(2)定义一个函数2,用于求解两个数的差、和,并同时返回给函数;

(3)定义一个函数3,输出:人生苦短,我用Python;

# 1.求解两个数的积
def func1(a,b):return a*bprint(func1(3,5))  # 15# 2.求解两个数的差,和
def func2(x,y):return x-y,x+yprint(func2(8,5))  # (3,13)  输出的是一个元组# 3.输出没有返回值
def show():print("人生苦短,我用Python。")show() # 人生苦短,我用Python。
print(show())  # None

函数嵌套调用

def 函数1():
    代码
    ...

def 函数2():
    代码
    # 调用函数1
    函数1()
    ...

例1:

(1)先定义一个test()函数和func()函数;

(2)接着,在函数test()中,嵌套调用func()函数,并在外部调用test()函数;

(3)执行程序,观察效果;


# 1.定义func()
def func():print("==========AA===============")print("==========Nfunc()============")print("==========BB===============")# 2.定义test()、调用func()
def test():print("*************11****************")func()print("**********M调用了test方法**************")print("*************22****************")# 3.调用test()
test()   

例2:

(1)要完成一个输出任意条横线的需求;

(2)定义函数1:用于输出一条横线;

(3)定义函数2:先循环N次,再调用函数1,可输出N条横线;

def print_one_line():print("-"*40)def print_lines(num):i = 0while i < num:print_one_line()i += 1print_lines(10)

变量的作用域

局部变量

局部变量指的是:定义在函数内部的变量或参数,且只在函数中生效。

def 函数名(参数1,参数2,...):
    代码
    变量名 = 值
    ...

(1)定义一个函数1,有局部变量:参数;

(2)定义一个函数2,有局部变量:变量;

(3)调用函数,观察程序执行效果。

# 1.参数
def func1(a):print(f"a值为:{a}")func1(2)def func2():b=100  # 局部变量print(f"===========b的值 = {b}")func2()
print(b) # 报错

全局变量

全局变量指的是:在函数体内、外都能生效的变量。

变量名 = 值

def 函数名():
    代码
    ...

注意:想要修改全局变量的值时,记得提前使用global进行声明.

# 声明
global 变量名
# 修改值
变量名 = 修改后的值

(1)定义一个全局变量1,并在函数内外都使用;

(2)定义一个同名的全局变量2和局部变量,并在函数内使用该同名变量;

# 1.定义全局变量
a = 100
print(a)def func():print(f"输出的变量:{a}")func()# 3.定义同名变量
age = 18def show():age = 34print(f"输出age的值为:{age}")show()
print(f"age = {age}")

注意:当全局变量和局部变量设置的变量名相同,优先输出全局变量 

函数的多种参数

位置参数

调用函数时,根据函数定义的参数位置来传递数值。

def 函数名(参数1,参数2,...):
    代码
    ...

函数名(值1,值2,...)

(1)定义使用格式化符号替换数据,显示法名,技能,年龄

def show_info(name, skill, age):print("-" * 50)print("法名: %s"%name)print("技能: %s"%skill)print("年龄: %d"%age)print("-" * 50)# 2 关键字参数 关注点: 值找到对应的参数名就可以, 跟顺序无关(参数多时 比较适合)
# show_info(skill="好色", age=888, name="八戒")
# show_info(age=888) # 报错: 缺少两个参数 name, skill# 1 位置参数 关注点: 参数 个数, 类型, 顺序(缺点: 必须按照指定顺序来)
show_info("悟空", "七十二绝技", 666)
# show_info("悟空", 72, "666") # 报错: 需要整数, 传递的字符串, 类型不一致
# show_info("悟空") # 报错: 缺少参数

注意:如果参数的个数不够,或者类型不对,将会报错

关键字参数

调用函数时,可以通过【键 = 值】的形式指定参数。

def 函数名(参数1,参数2,...):
    代码
    ...

函数名(参数1=值, 参数2=值,...)

定义一个函数,用于显示个人名片的姓名、年龄、性别等信息;

# 1.定义显示个人信息的函数
def show_infos(name, age, sex):print("个人信息如下:")print(f"姓名:{name}")print(f"年龄:{age}")print(f"性别:{sex}")# 2.调用
show_infos(age=24,name="张三",sex="女")
# show_infos(age=24,name="张三",gender="女")  # 报错

默认参数

在定义函数时,就为参数提供默认值。

def 函数名(参数1,参数2,...,参数n=值):
    代码
    ...

函数名(值1,值2,...[值n])

定义一个显示姓名,电话,密码的函数,且默认性别为男;

def emp(name, phone, password="123456"):print("-" * 50)print(f"个人信息: name={name}, phone={phone}, password={password}")print("-" * 50)# emp("悟空", "18612480001", password="baqi")
emp("八戒", "18612480001")# 报错: 设置默认参数 必须参数的最后
# def emp(password="123456", name, phone):
#     print("-" * 50)
#     print(f"个人信息: name={name}, phone={phone}, password={password}")
#     print("-" * 50)# 报错: 设置默认参数 必须参数的最后
# def emp(name="悟净", phone, password="123456"):
#     print("-" * 50)
#     print(f"个人信息: name={name}, phone={phone}, password={password}")
#     print("-" * 50)

 注意:定义默认参数必须放在最后的位置,并且打印时也不可以换位置

可变参数

可变参数也叫不定长参数,不定长参数用于在不确定调用函数时,要传递多少个参数的场景,当然也可以不传递参数。

而当要调用函数时,可以给*args传递位置参数,给**kwargs传递关键字参数,这样显得更加方便。

def 函数名(参数1,..,*args,**kwargs):
    代码
    ...
    
函数名(值1, 值2, 值3, ... 参数1=值, 参数2=值,...)

(1)定义函数1,使用不定长参数*args求多个数之和;

(2)定义函数2,使用不定长参数**kwargs求多个数之和;

(3)综合两个函数,合并在一起完成求多个数之和;

# 1.通过*args求和
def num1(*args):print(args)sum1 = 0for i in args:sum1 += iprint(f"多个数之和为:{sum1}")num1(1,2)  # 3
num1(1,2,9)  # 12
num1(1,2,9,11)  # 23# 2.通过**kwargs之和
def num2(**kwargs):print(kwargs)sum2 = 0for i in kwargs.values():sum2 += iprint(f"多个数之和为:{sum2}")num2(a=1,b=2)  # 3
num2(a=1,b=2,c=4)  # 7
num2(a=1,b=2,c=3,d=9)  # 15# 3.结合
def num3(*args,**kwargs):result = 0sum1 = 0for i in args:sum1 += isum2 = 0for i in kwargs.values():sum2 += iresult = sum1 + sum2print(f"多个数之和为:{result}")num3(3, a=1, b=2, c=4)  # 10
num3(3,6, a=1, b=2, c=4)  # 16
num3(3,6, a=1, b=2, c=4,f=9)  # 25

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com