Python函数部分(1)

    之前,我们编代码时程序遵循的原则是:根据逻辑从上至下实现功能,其往往用一大段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处。这种方式虽然可以应付一般性的问题,但不能解决大多数问题,于是就有了函数这个知识点,函数最大的优点:增强代码的复用性和可读性。

1.函数定义

  在python中,函数有五大要点,分别是def、函数名、函数体、参数、返回值,以及函数名后的括号和括号后的冒号。

定义:

def func(a):
    # 函数体
    return a

def关键字开头,空格后接函数名称和圆括号,最后还有一个":"冒号,def是固定不变的,空格是为了将def关键字和函数名分开,函数名只能包含字符串、下划线和数字且不能以数字开头,括号时必须加的。

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数的下面一行。以增强代码的可读性。

调用:就是函数名再加上括号。

2.函数的返回值

 函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。例如:

def func():
    a = 'hello'
    b = 'world'
    c = a + " " + b
   
d = func()
print(d

 执行结果

我们只要在函数的最后面加上一个return,return后面写上你要返回的值就可以啦。

def func():
    a = 'hello'
    b = 'world'
    c = a + " " + b
    return c
d = func()
print(d)

执行结果

return关键字的作用

   return是一个关键字,return后面的值称作返回值。返回值分为三种情况,分别是没有返回值,返回一个值,返回多个值。

   没有返回值,不写return的情况下,会默认返回一个None如上面的第一个例子;只写return,后面不跟其它内容,也会返回None。----重要方法遇到return,结束整个函数。

def func():
    print("hello")
    return
    print("world")
f = func()
print(f)

执行结果:

返回一个值,即在return后面写上要返回的值。

def func():
    a = 'hello'
    return a
f = func()
print(f)

# 结果:hello

 返回多个值,返回的多个值会被组织成元组返回。

def func1():
    return 1, 2, 3, 4
def func2():
    return 1, 'a', [2, 'b']
f = func1()
print(f)
f2 = func2()
print(f2)

 执行结果:

3.函数的参数

# 计算x的n次方
def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
x, n = map(int, input().split())
print(power(x, n))

 我们告诉power函数要计算的对象是谁,这个过程就叫做传递参数,简称传参,我们调用函数传递的x,n和定义函数时的x,n就是参数。

实参和形参,我们调用power函数时传递的x,n被称为实际参数,因为这个是实际的要交给函数的内容,简称实参。定义函数时的x,n;只是变量名字,被称为形式参数,因为在定义时它只是一个形式,表示这里有                        一 个参数,简称形参。

位置参数:

       站在实参角度:

              1.按照位置传值

def func(x,y):   # 此时x=10,y=20
    if x > y:
        a = x
    else:
        a = y
    return a
f = func(10, 20)
print(f)

           2.按照关键字传值

def func(x,y):   # 此时x=20,y=10
    if x > y:
        a = x
    else:
        a = y
    return a
f = func(y = 10, x = 20)
print(f)

         3.位置、关键字形式混着用-----正确用法:位置参数必须在关键字参数的前面;对于一个形参只能赋值一次。

def func(x,y):   # 此时x=10,y=20
    if x > y:
        a = x
    else:
        a = y
    return a
f = func(10, y = 20)
print(f) 

     站在形参的角度:位置参数必须传值。

默认参数

         1.使用方法:将变化较小的之设定成默认参数。

         2.默认参数的定义

def func(name,sex='male'):
    print(name, sex)
func('parker')
func('小红', 'female')

         3.参数陷阱:默认参数是一个可变数据类型。

动态参数:

               *args           :  接收的是按照位置传参的值,组织成一个元组。

               **kwargs     :  接收的是按照关键字传参的值,组织成一个字典。

def sum(*args):
    n = 0
    for i in args:
        n += i
    return n

print(sum(1, 2))
print(sum(1, 2, 3))
print(sum(1, 2, 3, 4))
def func(**kwargs):
    print(kwargs)
func(a=1, b=2, c=3)
func(a=1, b=2)
func(a=1)

参数总结:

猜你喜欢

转载自www.cnblogs.com/lal666/p/10616112.html