zoukankan      html  css  js  c++  java
  • 函数学习总结

    定义

    自己总结:就相当于现实中各种用途的工具,有着对数据进行各种处理的功能(实质就是比较复杂的变量?!)

    分类 

    自定义函数和Python语言已经定义过的常用的内置函数

    自定义函数的组成部分

    def 函数名(参数1,参数2...):
    '''
    函数的描述及功能
    '''
        语句1
        语句2
    return 返回值

    自己理解:

        ①def:是内置函数名(保留标识符),用于自定义一个自定义函数,实现需要内置函数没有的功能

        ②函数名:就是标识符(?!),相当于工具的名字,方便调用和区分

        ③参数:根据功能要求可有可无,分为形式参数和实际参数,形参本质就是变量名,有位置形参、默认形参;实参就是变量值,有位置实参、关键字实参,两者可以混用,规则是所有位置实参必须都在关键字实参左边,一个形参有且只能对应一个实参。如果形参为:“*args”,表示用来接收溢出的位置实参,相当于把位置实参作为一个元组,遍历元组取元素的值分别作为实参运行函数,相对应的实参就为:“*(实参)”,表示:*后面的分别取出溢出实参如果形参为**wdargs表示用来接收溢出关键字实参,相当于把关键字实参作为一个字典,遍历字典取键值对作为关键字实参运行函数。如果实参

    使用**{key1:value,key2:value};这是把**后面的参数遍历取出当做关键字实参应用

        ④语句就是实现函数功能的过程代码,定义函数阶段只检测语法,是把函数语句当做字符串存储在内存中,不执行,调用阶段才执行具体代码

        ⑤return:标识符,函数结束的标志;返回值可以是任意个数的任意数据类型,0个:None,1个:值本身,多个:依元组形式返回

    使用

    调用函数格式:函数名(参数),调用之后才会执行语句

    例子

    1、

    def far():
        '''
        打印“from far”
        '''
        print('from far')
        return
    def foo():
        '''
        打印“from foo”
        '''
        print('from foo')
        return
    
    far()
    foo()
    
    '''
    结果:
    from far
    from foo
    '''

    2、

    def func():
        '''实验毫无意义'''
        name = 'Jim'
        age = '18'
        hobby_list = ['read', 'write']
        return name, age, hobby_list
    
    name, age, hobby_list = func()
    print(f'name,age,hobby_list: {name, age, hobby_list}')
    '''
    结果:
    name,age,hobby_list: ('Jim', '18', ['read', 'write'])
    '''

    3、

    def register(name, hobby, hobby_list=[]):
        hobby_list.append(hobby)
        print(f' {name} like {hobby}')
        print(f'{name} like {hobby_list}')
    
    register('Jim', 'reading',)
    register('Gru', 'bedthings',)
    register('Dru', 'money',)
    
    '''
    结果:
     Jim like reading
    Jim like ['reading']
     Gru like bedthings
    Gru like ['reading', 'bedthings']
     Dru like money
    Dru like ['reading', 'bedthings', 'money']
    '''

    4、

    def register(name, hobby, hobby_list=None):
        if hobby_list == None:
            hobby_list = []
        hobby_list.append(hobby)
        print(f'{name} like {hobby}')
        print(f'{name} like {hobby_list}')
    
    register('Jim', 'reading',)
    register('Gru', 'bedthings',)
    register('Dru', 'money',)
    
    ''' 结果: Jim like reading Jim like ['reading'] Gru like bedthings Gru like ['bedthings'] Dru like money Dru like ['money'] '''

    5、

    def func(x, y, *args, **kwargs):
        print(x, y, args, kwargs)
        print(x, y, *args, kwargs)
    
    func(1, 2, 3, *(4, 5),)
    func(1, 2, c=8, **{'a': 6, 'b': 7})
    
    '''
    结果:
    1 2 (3, 4, 5) {}
    1 2 3 4 5 {}
    1 2 () {'c': 8, 'a': 6, 'b': 7}
    1 2 {'c': 8, 'a': 6, 'b': 7}
    '''

    6、

    def index(l, name, age, sex):
        print(f"{l}, name: {name}, age: {age}, sex: {sex}")
    
    def wrapper(*args, **kwargs):
        print(f"args: {args}")
        print(f"kwargs: {kwargs}")
        index(*args, **kwargs)
    
    wrapper(1, name='nick', sex='male', age=19)
    
    '''
    结果:
    args: (1,)
    kwargs: {'name': 'nick', 'sex': 'male', 'age': 19}
    1, name: nick, age: 19, sex: male
    '''

    实现注册、登录功能函数

    def register():
        """注册功能"""
        username = input('username: ').strip()
        pwd = input('password: ').strip()
    
        with open('38a.txt', 'a', encoding='utf8') as fa:
            fa.write(f"{username}: {pwd}
    ")
            fa.flush()
    
    register()
    
    
    def login():
        """登录功能"""
        while True:
            inp_username = input('username: ').strip()
            inp_pwd = input('password: ').strip()
    
            if inp_username == 'Jim' and inp_pwd == '123':
                print('欢迎你,Jim')
                break
    
            else:
                print('用户名或者密码错误')
    
    login()
  • 相关阅读:
    NET Core入门笔记
    NET Core入门笔记
    NET Core入门笔记
    也许,这样理解HTTPS更容易
    也许,这样理解HTTPS更容易
    也许,这样理解HTTPS更容易
    10 个实战及面试常用 Shell 脚本编写
    10 个实战及面试常用 Shell 脚本编写
    10 个实战及面试常用 Shell 脚本编写
    7617:输出前k大的数
  • 原文地址:https://www.cnblogs.com/HGJBKY/p/10777351.html
Copyright © 2011-2022 走看看