4.函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangyang20170901/article/details/84898287

时间:2018-12-8 19:58:10

-----------------------------------------------------------------------------------

0.基本概念

     函数可以通过关键字def来定义。后面跟着函数的标识符名称及括号,加冒号。

def sayhello():
    print('hello world')#定义函数
   
sayhello()#调用函数
sayhello()#调用函数

1.函数参数

  定义函数时给定形参,调用函数时给定实参。

def print_max(a, b):
    if a > b:
        print(a, 'is maximum')
    elif a == b:
        print(a, 'is equal to',b)
    else:
        print(b, 'is maximum')

print_max(3, 4)#直接传递字面值

x = 9
y = 7
print_max(x,y)#以参数形式传递变量

2.局部变量

x = 50
def func(x):
    print('x is ', x)#输出50
    x=2
    print('changed local x to',x)#输出2

func(x)
print('x is still',x)#输出50

3.global语句

x = 50
def func():
    global x

    print('x is ', x)#输出50
    x=2
    print('changed local x to',x)#输出2

func( )
print('x is ',x)#输出2

 global声明x是一个全局变量,因此在函数中为x赋值时,这一改动会影响到在主代码块中x的值。

4.默认参数值

      默认参数值是常数,不可改变。当用户不想提供值时,可以通过在函数定义时附加一个赋值运算符(=)来指定默认参数值。

def say(message, times=1):
    print(message*times)

say('hello')
say('hello ',5)

注意:位于参数列表末尾的才能被赋予默认参数值。

5.关键字参数

     通过命名来给参数赋值,而不是根据位置来指定函数中的参数。

     优点:不需要考虑参数的顺序。只对希望赋予的参数赋值,其他的具有默认参数值。

def func(a,b=5,c=10):
    print('a is',a,'and b is',b,'and c is',c)

func(3,7)
func(25,c=24)
func(c=25,a=100)

6.可变参数

def total(a=5,*number,**phonebook):
    print('a',a)

    for single_item in number:
        print('single_item',single_item)

    for first_part, second_part in phonebook.items():
        print(first_part,second_part)

print(total(10,1,2,3,jack = 1123, jone=2231, inge=1560))

输出:

a 10
single_item 1
single_item 2
single_item 3
jack 1123
jone 2231
inge 1560
None

当声明*number的星号参数时,从此处开始直到结束的所有位置参数都将被汇集成一个称为number的元组

当声明**phonebook时,从此处直到结束所有关键字参数都将被收集并汇集成一个名为phonebook的字典

7.return语句

8.DocStrings

   文档字符串。

def print_max(x,y):
    '''打印两个数值中的最大数。
    
这两个数应该是整数''' #这是文档字符串
    x=int(x)
    y=int(y)
    if x>y:
        print(x,'is maxmum')
    else:
        print(y,'is maxmum')

print_max(3,5)
print(print_max.__doc__)#双下划线

 用函数__doc__来获取print_max中的文档字符串。

----------------------------------------------------------------------------------------------

结束时间:2018年12月8日22:00:10

进度:69/153

猜你喜欢

转载自blog.csdn.net/wangyang20170901/article/details/84898287