zoukankan      html  css  js  c++  java
  • python基础学习Day9 函数的初识,实参、形参、

    1、函数

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

    定义的my_len()方法时,其结果也可以直接获取。

    这里,我们将my_len()称为执行函数,其组成是由 :函数名()

    函数的优点:

    1. 函数可以减少代码的重复性

    2. 函数可以增强代码的阅读性

    2、return的作用

    def func1():
        a = 1
        b = 2
        c = a + b
        return c
    print(func1())

    1. 函数中如果遇到return,则直接结束函数

    2. 给函数中的执行者(函数名():整体是函数的执行者)返回值

    3. return 返回单个值,即原封不动的返回(是什么类型,就返回什么类型值)

    4. return 返回多个值,即返回一个元组,所有值都是元组的一个元素

    注:在工作中,通常函数尽量不要使用print。

    def func_1():
        a = 1
        b = 2
        c = a + b
        d = [1,2,3]
        e = (4,5,6)
        f = 'Chris'
        return c,d,e,f
    print(func_1())     # (3, [1, 2, 3], (4, 5, 6), 'Chris')

    3、实参

    3.1位置实参    按照顺序,一一对应

    def func1(x,y):
        print(x,y)
    print(1,2)

    3.2 关键字参数     可以不按照舒服,但是要一一对应

    def func2 (x,y):
        return x + y
    print(func2(y = 100,x = 32))

    3.3 混合参数     可以不按照顺序,但是要一一对应

    def func1(a,b,x,y):
        return a + b + x + y
    print(func1(100,56,y= 100,x= 32))
    
    def func1(a,b,n,x,y):
        return a + b + x + y
    name = 'Chris'
    print(func1(100 , 56, name, y= 100, x= 32))   # name是位置参数

    4、形参

    4.1   位置参数:按照顺序一一对应

    def func(x,y,z):
        print(x,y,z)
    func(1,2,3)

    4.2   默认参数:给其传参,将默认参数覆盖,不传值时不报错,使用默认值

    def func1(x,y,a= 666):
        print(x,y,a)
    func1(1,2)        # 不传参,则为默认值    (1 2 666 )
    func1(1,2,256)    # 传参,则将默认值覆盖   (1 2 256)
    应用场合:不机场改变参数,但是一直再用
    不断输入个人信息,如姓名与性别。并将信息写入文件中
    方法一:
    while 1:
        name,sex = input('请输入姓名与性别,中间用逗号分隔:').strip().replace('',',').split(',')
        if name.upper() == 'Q':
            break
        with open('a1.txt',encoding='utf-8',mode= 'a') as f1:
            f1.write('{}|{}
    '.format(name,sex))

    方法二:

    def namelist(name,sex = ''):
        with open('a1.txt',encoding='utf-8',mode='a') as f1:
            f1.write('{}|{}
    '.format(name,sex))
    while 1:
        name,sex = input('请输入姓名,性别').strip().replace('',',').split(',')
        if name.upper() == 'Q':
            break
        if sex.strip():
            namelist(name ,sex)
        else:
            namelist(name)
    namelist(name,sex)
    默认参数的陷阱
    默认参数若是可变数据类型(如:list),但他始终使用的是一个,即默认参数公用一个内存地址。
    def func1(x,l1=[]):
        l1.append(x)
        return l1
    ret = func1(1)
    print(ret,id(ret))    # [1]        2426801554952
    ret2 = func1(100)
    print(ret2,id(ret2))    # [1, 100] 2426801554952
  • 相关阅读:
    十招教你从屌丝变身高富帅【转】
    无法在证书存储区中找到清单签名证书”错误的解决方法【转】
    上传头像进行裁剪——jQuery + HttpHandler 实现图片裁剪(适用于论坛, SNS)【转】
    在类库中获得Session值
    WinForm中Combobox绑定值问题
    Global.cs中自动获取未处理的异常
    程序员的7个坏习惯【转】
    外部JS文件中获取ASPX页面上服务器控件ClientID
    如何使用微软企业库
    防止代码腐烂【转】
  • 原文地址:https://www.cnblogs.com/youhongliang/p/9483526.html
Copyright © 2011-2022 走看看