[Python]学习笔记6——函数

函数是什么?

在Python中,function是一组执行特定任务的相关语句。
函数有助于将我们的程序分解为更小的模块化块。随着我们的计划越来越大,功能使其更加有条理和易于管理。
此外,它避免重复并使代码可重用

语法

def function_name(parameters):
 """docstring"""
 statement(s)  

上面显示的是一个函数定义,它由以下组件组成。

关键字def标记函数头的开始。
用于唯一标识它的函数名称。函数命名遵循在Python中编写标识符的相同规则。
参数(参数),我们通过它将值传递给函数。它们是可选的。
冒号(:)标记函数头的结尾。
用于描述函数功能的可选文档字符串(docstring)。
构成函数体的一个或多个有效的python语句。语句必须具有相同的缩进级别(通常为4个空格)。
用于从函数返回值的可选return语句。

如何调用函数?

一旦我们定义了一个函数,我们就可以从另一个函数,程序甚至Python提示符中调用它。要调用函数,我们只需使用适当的参数键入函数名称

name='Shadow'

def getname(a):
    '''这是一个获取我的名字的函数'''
    print('My name is',a)

getname(name)

结果:
在这里插入图片描述

文档字符串

函数头之后的第一个字符串称为docstring,是文档字符串的缩写。它用于简要解释函数的作用。
虽然可选,但文档是一种很好的编程习惯。除非你能记住你上周吃的晚餐,否则请记录你的代码。
在上面的示例中,我们在函数头的正下方有一个docstring。我们通常使用三引号,以便docstring可以扩展到多行。我们可以将此字符串作为函数的__doc__属性使用。

name='Shadow'

def getname(a):
    '''这是一个获取我的名字的函数'''
    print('My name is',a)

getname(name)
print(getname.__doc__)

结果:
在这里插入图片描述

返回

name='Shadow'

def getname(a):
    '''这是一个获取我的名字的函数'''
    print('My name is',a)

print(getname(name))


def ifodd(m):
    if m%2==0:
        return 'It is not odd'
    else:
        return 'It is odd'

print(ifodd(10))

结果:
在这里插入图片描述

变量的范围和寿命

变量的范围是程序中识别变量的部分。函数内定义的参数和变量在外部不可见。因此,它们具有局部范围。
变量的生命周期是变量在存储器中退出的时间段。函数内部变量的生命周期与函数执行的时间一样长。
一旦我们从函数返回它们就会被销毁。因此,函数不记得先前调用的变量值。
下面是一个示例,用于说明函数内部变量的范围。

def my_func():
	x = 10
	print("Value inside function:",x)

x = 20
my_func()
print("Value outside function:",x)

结果:
在这里插入图片描述

参数

情况一,不给参数会报错:

def my_func(x):
   print("Value inside function:",x)

my_func()

结果:
在这里插入图片描述

情况二:给默认的参数

def my_func(x=11111):
   print("Value inside function:",x)

my_func()

结果:
在这里插入图片描述
情况三:有默认参数且给了参数

def my_func(x=11111):
   print("Value inside function:",x)

my_func(2222)

结果:
在这里插入图片描述

但是

一旦我们有一个默认参数,它右边的所有参数也必须有默认值。
这意味着,非默认参数不能遵循默认参数。
在这里插入图片描述

def my_func(y=111,x=0):
   print("Value inside function:",y,x)

my_func(2222)

结果:
在这里插入图片描述

Python任意参数

有时,我们事先并不知道将传递给函数的参数数量.Python允许我们通过具有任意数量参数的函数调用来处理这种情况。
在函数定义中,我们在参数名称前使用星号(*)来表示这种参数。这是一个例子。

def my_func(*names):

    for name in names:
        print('Hi',name)

my_func(100)

my_func('aaa','bbb','vvv')

结果:
在这里插入图片描述

Python函数: 在列表中移除重复对象

def my_func(names):
    empty=[]
    for name in names:
        if name not in empty:
            empty.append(name)
    return empty

print(my_func([1,2,3,4,2,3,7,8,9]))

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Shadownow/article/details/105842400