zoukankan      html  css  js  c++  java
  • python基础 day9 函数式编程1

    一、函数的结构

    def 函数名(参数列表):
        函数体
        return 返回值
    
    • 在python中定义函数时,关键字是def, 函数名需要符合标识符命名规范。
    • 多个参数列表之间可以用逗号分隔,函数也可以没有参数。
    • 如果函数有返回值,就需要在函数体最后使用return语句将数据返回;
    • 如果没有返回数据,则可以使用return None 或者省略renturn 语句。

    示例:加法计算器函数

    def calculator(first_num, second_num):
        test = first_num + second_num
        return test
    
    
    print(calculator(2, 3))
    
    • 如果return 返回多个元素,则以元组的形式返回
    def calculator(first_num, second_num):
        calculator_sum = first_num + second_num
        calculator_proc = first_num * second_num
        return calculator_sum, calculator_proc
    
    
    print(calculator(2, 3))
    #结果为:(5, 6)
    

    二、函数的参数

    • 实参和形参

    实参的角度:

    1.位置参数 :

    • 从左至右,一一对应
    def info(name, age, sex, hobby):  # 接受的参数,形式参数
        your_info = """
    姓名:{}
    年龄:{}
    性别:{}
    爱好:{}
    """.format(name, age, sex, hobby)
        return your_info
    
    
    print(info('jason', '24', '男', 'sleep'))  # 函数执行的参数:实际参数
    

    练习:写一个函数,只接受两个int的参数,函数功能是将较大的数返回

    *补充知识点:三元运算符

    适用于简单的if else 语句

    a = 10
    b = 10
    c = a if a > b else b
    print(c)
    
    def compare(a, b):
        c = a if a > b else b
        return c
    
    
    print(compare(2, 5))
    

    2.关键字参数

    • 顺序可以打乱,但还是要一一对应
    def info(name, age, sex, hobby):
        your_info = """
    姓名:{}
    年龄:{}
    性别:{}
    爱好:{}
    """.format(name, age, sex, hobby)
        return your_info
    
    
    baby_info = (info(age=24, hobby='sleep', name='jason', sex='男'))
    print(baby_info)
    

    3.混合参数

    • 位置参数一定要在关键字参数前面
    def info(name, age, sex, hobby):
        your_info = """
    姓名:{}
    年龄:{}
    性别:{}
    爱好:{}
    """.format(name, age, sex, hobby)
        return your_info
    
    
    baby_info = (info('jason', hobby='sleep', age=24, sex='男'))
    print(baby_info)
    

    形参的角度:

    1.位置参数

    与实参角度的位置参数一样,一一对应

    2.默认参数

    def info(age, sex, hobby, name='jason'):  # 将name='jason'设置成默认参数
        your_info = """
    姓名:{}
    年龄:{}
    性别:{}
    爱好:{}
    """.format(name, age, sex, hobby)
        return your_info
    
    
    print(info('24', '男', 'sleep'))  # 此时实际参数中就不需要传入name的值
    

    默认参数也是可以修改的

    def info(age, sex, hobby, name='jason'):  # 将name='jason'设置成默认参数
        your_info = """
    姓名:{}
    年龄:{}
    性别:{}
    爱好:{}
    """.format(name, age, sex, hobby)
        return your_info
    
    
    print(info('24', '男', 'sleep', name='carly'))  # 将name 的值改为'carly'
    

    三、练习

    写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作。

    import os
    
    
    def func_file(name, before, after):
        with open(name, 'r', encoding='utf-8') as f,
                open('temp.txt', 'a', encoding='utf-8')as f1:
            for line in f.readlines():
                new_line = line.replace(before, after)
                f1.write(new_line)
        os.remove(name)
        os.renames('temp.txt', name)
    
    
    func_file('student_msg.txt', '女', '母夜叉')
    
  • 相关阅读:
    url_encode and url_decode in Shell
    学嵌入式技术,做高端电子工程师
    MCU助推居家移动医疗微型化
    深圳单片机培训,7月盛大开班,报名既送
    中国嵌入式工控机市场前景广阔
    嵌入式 现已发展为 IT行业的主流——高薪,且人才缺乏
    谷歌苹果已“技穷”?移动操作系统2013无创新
    C# 与 C++,语法差别有多小-其他2
    link
    C# 与 C++,语法差别有多小-第三章 C++数据类型 第一部分
  • 原文地址:https://www.cnblogs.com/west-yang/p/12584143.html
Copyright © 2011-2022 走看看