Python理解函数调用的原理及其概念

在这里插入图片描述
本文将介绍与函数有关的所有概念,并让你很容易理解。这个主题很容易理解,但是由于实践经验较少而很难理解。

涉及的主题:

  • 介绍
  • 函数参数及其类型
  • 全局和局部变量
  • 将数据序列传递给功能
  • 匿名函数-Lambda

介绍

当您在一个程序算法中多次编写公式一次或多次编写公式时,就会知道使用功能的价值,这会花费很多时间。

重要的是要使单个函数包含该公式,并多次使用这些函数。

使用函数的好处如下所示:

  • 节省时间。
  • 程序的可读性是用户友好的。
  • 我们可以在程序中多次重用该功能。
  • 它还有一个抽象的目的,我们必须知道,什么是函数名,什么函数从事什么工作,以及它返回什么。

该功能具有两种功能。

1.它需要定义一个功能。
2.为了使该功能起作用,我们必须对其进行调用。

句法

def name_of_function():

要在python中定义函数,必须使用def字。

例子:

def india(): # 定义函数
    print("这个国家非常伟大")
india() # 调用函数      
  • 我们定义一个函数并分配一个任务来处理它。
#两个数字的
def sum(x,y):
    a= x+y
    print(x)
#给出两个参数
sum(4,2)
#output: 6

函数参数及其类型

参数是传递给函数的值或变量。

参数分为实际参数和形式参数两种。在实际参数是值/变量通过在呼叫时间。在正式的参数是在函数定义的值/变量。

在这里插入图片描述

现在,让我们看看两个变量值如何影响结果

#传递值                         #传递变量
def num(x):                           def num(x)
                                          x= 10
    print(x)                              print(x)
#传递一个值                      #传递一个变量
num(2)                                a= 2
                                      num(a)
#output: 2                            #output: 10

在上面的示例中,我们看到结果受函数内部给定值的影响。

但是在列表的情况下,实际列表会通过更改函数内部列表中的值而受到影响和更新。即使更新后,列表的地址仍然相同。

def num(x):
 print(id(x))
 x[1] = 10
 print(“x:, x)
 print(id(x))
a = [1,2,3]
print(“a:, a)
print(id(a))
num(a)
print(“a:, a)
print(id(a))
#output:
a:  [1, 2, 3]
82513288
82513288
x:  [1, 10, 3]
82513288
a:  [1, 10, 3]
82513288

这些数据之间的区别是不可变和可变的数据类型。

实际参数由四种类型组成,如下所示:

1.位置
2.关键词
3.默认
4.可变长度

位置类型参数

在位置类型中,我们在调用函数时必须保持一系列实际参数,而在定义函数时必须保持形式参数。因此,传递的值将一个接一个地传递给形式参数。

例如:

def person(country_name, code):
    print(country_name)
    print(code)
person('China', 2412)
#output:
China
2412

在上面的示例中,位置在代码中表示“中国”到达形式参数的第一位置,“ 2412”到达形式参数的第二位置。

关键字类型参数

在这种类型的参数中,如果我们不知道形式参数的顺序,但是知道两个参数名称,那么无论序列如何,我们都可以在实际参数中使用变量名称作为关键字。

例如:

def person(country_name, code):
    print(country_name)
    print(code)
person('China', 2412)
#output:
China
2412

在上面的示例中,我们将值传递给变量名称,以便它们与各自的形式参数一起使用。

默认类型参数

当我们必须设置一些条件并在形式参数中分配一个值时,此参数很有用。

例如:

def person(country_name, code):
    print(country_name)
    print(code)
person('China', 2412)
#output:
China
2412

上面的示例将为输出提供传递一个参数,因为第二个参数在形式参数中已经具有值。

可变长度

在这种类型的参数中,当我们有两个变量并且需要将多个值传递给一个变量时,则变量长度变量在变量前的图片中带有“ *”。

例如:

def sum(a, *b):
    x= a+b
    print(x)
sum(5,4,7,3)
#output:
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

在这里,当我们将多个值传递给两个形式参数时,这意味着实际参数的第一个值将作为位置规则进入形式参数中的第一个变量。但是,其他三个值作为元组进入变量“ b”。

a = 5
*b = (4,7,3)

这就是为什么会出现错误的原因,因为我们无法添加整数和元组。因此,要解决此问题,我们需要一个for循环,如以下示例所示。

def sum(a, *b):
    y = a
    for i in b:
        y = a+i
    print(y)
sum(5,4,7,3)
#output:
8

这是在实际参数中使用“ **”作为可变长度及其关键字的另一个技巧。

例如:

def sum(a, **b):
    print(a)
    print(b)
sum(5,State = 'Shillong', age = 20, mob = 235436)
#output:
5
{'State': 'Shillong', 'age': 20, 'mob': 235436}

全局和局部变量

全局变量:在函数外部定义的变量。

局部变量:在函数内部定义的变量。

例如:

x = 4               #Global Variable
def hello(x):
    x= 20           #Local Variable
    print(x)
hello(x)
print(x)
#output:
20
4

我们尝试将全局值更改为局部值,并在函数内部将其更改为已打印的局部变量值。如果我们想使用局部变量作为全局变量该怎么办。

例如:

x = 4               #全局变量
def hello():
    global x        #将局部变量作为全局变量
    x= 20           #局部变量
    print(x)
hello()
print(x)
#output:
20
20

将数据序列传递给功能

在函数中,我们也可以传递序列数据类型。

例如清单:

def calculate(lst):
    even = 0
    odd = 0
    
    for i in lst:
        if i%2 ==0:
            even = even+1
        else:
            odd = odd+1
    print("Even: ", even, "odd: ", odd)
    #return even, odd
lst = [23, 33, 4, 22, 44, 16, 19]
calculate(lst)
#output:
Even:  4 odd:  3

匿名函数-Lambda
lambda函数是节省时间和内存的非常有用的函数。它是单行代码。

例如:

func = lambda x:x+x
result = func(3)
print(result)
#output:
6

结合使用lambda函数和字符串,如以下示例所示:

name = lambda first_name, surname: f'name: {first_name.title()} {surname.title()}'
name('Amit', 'Chauhan')
#Output:
'name: Amit Chauhan'

结论:

本文介绍了有关python中函数的基本概念。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值