python基础 day9 函数式编程1
admin
2024-04-30 07:43:50
0

一、函数的结构
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', '女', '母夜叉')

相关内容

热门资讯

大6座SUV还能火10年?“9... 本文来源:时代周报 作者:赵玲伟11月12日,智己LS9正式上市,共推出两款增程车型——52 Ult...
金融文化实践录|中国人寿:守护... 甘肃省白银市某医院的诊室里,不幸确诊乳腺癌的王女士曾因手术费彻夜难眠。当她提交完整理赔材料的三天后,...
王自如被恢复执行1.94亿元 ... 天眼查天眼风险信息显示,近日,王自如新增一则恢复执行信息,执行标的1.94亿元,执行法院为深圳市南山...
沉浸体验激活消费新想象 京东M... 今年的11.11,线上促销依旧火热,线下的创新业态也精彩纷呈,上演了“双线共热”的新剧情。作为京东集...
“酒鬼”少卖了14亿,“中粮系... 导语:三年跌没10亿利润,老“酒鬼”的出路在哪?连续三年营收、利润大幅下滑,从高端白酒新贵到行业“最...
西安旅游直营酒店扩张计划“搁浅... 西安旅游的“万澳系”直营酒店拓展项目要搁浅了。11月7日,西安旅游宣布终止2024年度向特定对象发行...
多名车主遇“提车骗局”!中间商... 11月10日晚间,长安汽车旗下新能源品牌阿维塔科技与深蓝汽车同步发布声明,回应近期消费者集中投诉的“...
A股午评:创业板指涨2.68%... 市场早盘震荡走强,深成指涨近2%,创业板指低开高走涨超2%。南财金融终端显示,截至早盘收盘,沪指涨0...
五年期定存下架!银行净息差有望... 由于净息差承压,银行中长期存款产品正在悄然离场。近日,内蒙古地区部分村镇银行明文取消五年期整存整取定...
宝龙地产旗下ABS实质性违约:... 11月12日,宝龙地产(01238.HK)附属公司上海宝龙实业发展(集团)有限公司(以下简称“宝龙实...