zoukankan      html  css  js  c++  java
  • Python之函数初识

    一、函数

    代码重复使用,代码可读性差,所以要使用函数。

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    二、函数的定义与调用

    1 def my_len():  #def 关键字,定义函数, 空格 函数名(变量)
    2     l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
    3     count = 0
    4     for i in l1:
    5         count += 1
    6 
    7 my_len()  # 函数名 + () 执行此函数
    8 
    9 #函数是以功能为导向,函数内部尽量不要有print

    三、函数的返回值

    3.1 遇到return 此函数结束,不在向下进行

    1 def my_len():
    2     l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
    3     print(1111)
    4     print(222)
    5     return
    6     print(333)

    3.2 return返回值

    3.2.1 不写return,返回None

    1 def my_len():
    2     l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
    3     count = 0
    4     for i in l1:
    5         count += 1
    6 print(my_len())
    View Code

    3.2.2 return None ,返回None

    1 def my_len():
    2     l1 = [1,2,3,4,5,6,7]
    3     count = 0
    4     for i in l1:
    5         count += 1
    6     return None
    7 print(my_len())
    View Code

     3.2.3 return 单个值 返回此单个值

    def my_len():
        l1 = [1,2,3,4]
        count = 0 
        for i in l1:
            count += 1
        return 'alex'
    print(my_len())

    3.2.4 return 多个值 将多个值包在元组中,返回给调用者此元组

     1 def my_len():
     2     l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
     3     count = 0
     4     for i in l1:
     5         count += 1
     6     return 1,2,[123,2]
     7 ret = my_len()
     8 print(ret)
     9 def my_len():
    10     l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
    11     count = 0
    12     for i in l1:
    13         count += 1
    14     return 1,2,[123,2]
    15 ret1,ret2,ret3 = my_len()
    16 print(ret1,ret2,ret3)
    View Code

    四、函数的参数

    4.1 函数的传参

     1 l2 = [1, 2, 3, 4, 5, 6, 5, 4, 3, 3, 'alex']
     2 #函数的传参
     3 def my_len(x):  #形参:形式参数
     4     count = 0
     5     for i in x:
     6         count += 1
     7     return count
     8 ret = my_len(l2)  # 实参:实际参数
     9 print(ret)
    10 len(s)

    4.2 实参传参

    4.2.1 按位置传参

    1 def my_len(x,y,z):  #形参:形式参数
    2     count = 0
    3     for i in x:
    4         count += 1
    5     return count
    6 ret = my_len(l2,s,'alex')  # 按位置传参
    7 print(ret)

    4.2.2 按关键字传参

    1 def func(x,y):
    2     z = x if x > y else y
    3     return z
    4 func(y = 2,x = 3) #关键字传参

    4.2.3 混合传参 关键字参数永远在位置参数后面

    1 def func(x,y,a,b):
    2     print(x,y)
    3     print(a,b)
    4 func(1,2,b = 34,a = 3) #  混合传参

    4.3 形式传参

    4.3.1 位置参数

    def my_len(x,y):  #形参:形式参数
        count = 0
        for i in x:
            count += 1
        return count
    ret = my_len(2,3)  # 按位置传参
    print(ret)

    4.3.2 默认参数

    def func(name,sex=''):
        with open('name_list','a',encoding='utf-8') as f1:
            f1.write('{}  {}
    '.format(name,sex))
    while True:
        name = input('请输入名字:')
        if '' in name:
            sex = input('请输入性别:')
            func(name,sex) #  混合
        else:
            func(name)

     陷阱:

    1 #[] {} () 
    2 def func(name,l = []):
    3     l.append(name)
    4     return l
    5 print(func('alex'))
    6 print(func('wusir'))

    4.3.3 动态参数

     1 # *args 动态参数,不定长参数
     2 #args元组,包括了所有的位置参数
     3 #**kwargs,包括了关键动态参数
     4 #顺序:位置参数==>*args==>默认参数==>**kwargs
     5 def func(a,b,c,*args,sex = '',**kwargs):
     6     print(a)
     7     print(b)
     8     print(c)
     9     print(args,type(args))
    10     print(sex)
    11     print(kwargs)
    12 func(1,2,'alex','wusir','ritian ',sex = '',name = 'taibai',age = 21)
    13 ############
    14 def func2(*args,**kwargs):
    15     #万能参数
    16     print(args)
    17     print(kwargs)
    18 func2(1,2,3,5,name='alex',age=56)
    19 ############
    20 def my_sum(*args):
    21     count = 0
    22     for i in args:
    23         count += i
    24     return count
    25 print(my_sum(1,2,3,6,78))
    26 print(sum([1,2,3]))
    27 #魔法运算:打散
    28 def func2(*args,**kwargs):
    29     print(args)
    30 l1 = [1,2,3,]
    31 l2 = [1,2,3,2,3,100,2]
    32 func2(*l2,*l1)
    33 ########
    34 def func3(*args,**kwargs):
    35     print(args)
    36     print(kwargs)
    37 dic = {'name':'alex','age':12}
    38 dic2 = {'name':'jin','age':22}
    39 func3(**{'name1':'alex','age1':12},**{'name2':'jin','age2':22},name3 = 'wusir')
    View Code
  • 相关阅读:
    kali 所有版本
    kali有关问题及kali2018.2安装
    python2
    burpsuite 破解教程
    python生成个性二维码
    万能密码
    python 1
    python
    python 第三方库安装
    Androidstdio 简单界面设计 登陆系统
  • 原文地址:https://www.cnblogs.com/xiaobin12126/p/8392702.html
Copyright © 2011-2022 走看看