Py学习  »  Python

30天入门Python(基础篇)——第6天:Python函数

码上编程学习社 • 3 月前 • 161 次点击  
资料已经打包好了,需要的关注公众号发送“111”领取

“写了5天代码,发现每次算成绩等级都要复制粘贴一堆if判断,太麻烦了”

“想把昨天的学生信息查询功能套用到新数据上,又得改半天”

——如果你有这种困扰,说明该学函数了!

它就像代码界的“万能模板”,一次写好,随时调用,直接帮你省一半工作量。

一、函数是什么?先看一个生活例子

你每天早上都要做“煮鸡蛋”:烧开水→放鸡蛋→煮5分钟→捞出来。

这个固定流程,就是一个“生活函数”。下次再想吃,不用重新想步骤,直接执行“煮鸡蛋”流程就行。

Python里的函数也一样:把重复执行的代码块“打包”起来,起个名字。

想用的时候喊名字(调用函数),代码就自动执行,不用再复制粘贴。

二、3步定义函数,简单到离谱

定义函数只要记住“def开头+函数名+冒号+缩进”四要素,咱们用“计算成绩等级”这个高频场景举例:

# 1. 定义函数:def 函数名(参数): (参数可选,像“煮鸡蛋”的“鸡蛋个数”)def get_grade(score):    # 2. 函数体:要重复执行的代码(缩进4个空格)    if score >= 90:        return "优秀"  # return:函数的“输出结果”,类似煮鸡蛋的“成品”    elif score >= 80:        return "良好"    elif score >= 60:        return "合格"    else:        return "不合格"# 3. 调用函数:函数名(传入参数),直接用结果student_scores = [85925876]for score in student_scores:    level = get_grade(score)  # 每次循环都调用函数,超省心    print(f"分数{score},等级:{level}")


运行后直接输出每个分数的等级,以后再算成绩,不用写一堆if,喊一声get_grade()就行。这就是函数的核心价值:一次定义,无限复用

三、函数的“输入”和“输出”:参数与return

函数不是孤立的,它需要“接收原料”(参数),才能产出“成品”(返回值),就像做蛋糕需要面粉(参数),最后出成品蛋糕(返回值)。

# 带多个参数的函数:计算BMI指数(体重kg/身高m²)def calculate_bmi(weight, height):  # weight和height是“原料入口”(参数)    bmi = weight / (height ** 2)  # 计算过程    return round(bmi, 2)  # 返回保留2位小数的BMI值(成品出口)# 调用时按顺序传入参数my_bmi = calculate_bmi(621.75)  # 体重62kg,身高1.75mprint(f"我的BMI指数:{my_bmi}")  # 输出:我的BMI指数:20.24# 更友好的用法:让函数直接输出结果(不用return)def print_greeting(name):    print(f"你好,{name}!今天也要坚持学Python哦~")print_greeting("小张")  # 直接调用,输出:你好,小张!今天也要坚持学Python哦~


新手避坑

① 参数要按顺序传,比如calculate_bmi(1.75, 62)会把身高当体重算,结果完全错;

② 想让函数有“结果”就加return,只想让它做事(比如打印)就不用加。

四、默认参数:让函数更灵活

有时候参数是固定的,比如“给学生发通知,开头都是‘同学你好’”,这时候可以设“默认参数”,调用时不用每次都写:

# 默认参数:把固定内容设为默认值def send_notice(name, title="Python学习提醒"):    print(f"【{title}{name}同学,今天的代码练习别忘了做哦~")# 调用1:只传必填参数(name)send_notice("小李")  # 输出:【Python学习提醒】小李同学...# 调用2:修改默认参数(title)send_notice("小王""今日任务")  # 输出:【今日任务】小王同学...


五、实战:用函数改造昨天的任务

昨天让大家写“查询学生成绩等级”的代码,现在用函数改造后,代码更简洁,还能随时加新功能:

# 1. 定义“查成绩”函数def check_student_score(student_dict):    for name, score in student_dict.items():        grade = get_grade(score)  # 调用之前定义的get_grade函数,省代码!        print(f"{name}的分数是{score},等级为{grade}")# 2. 准备数据class1 = {"小明"92"小红"78"小李"85}class2 = {"小张"65"小陈"95"小周"59}# 3. 批量查询,一键搞定print("一班成绩:")check_student_score(class1)print("二班成绩:")check_student_score(class2)


你看,不管是一班还是二班的数据,调用同一个函数就行,这就是函数的“通用性”。

六、新手必踩的3个坑,提前避开

  1. 缩进错误:函数体必须缩进(4个空格),不然Python认不出这是函数里的代码;

  2. 参数不匹配:定义时写了2个参数,调用时只传1个,会报错“缺少位置参数”;

  3. return和print混淆:return是“返回结果给程序”,print是“显示结果给人看”,想拿函数结果做后续计算,必须用return。

函数是Python的“核心效率工具”,从简单的成绩计算到复杂的爬虫脚本,都离不开它。今天的内容不用死记,重点是理解“打包重复代码”这个逻辑——下次写代码时,只要发现“这段内容要写第二次”,就立刻用函数包起来。

最后

以上就是今天给你分享的内容,觉得有用的话欢迎点赞收藏哦!

如果你也对Python这门编程感兴趣的话,欢迎加入我们。 (小白也可以参加)

  Python零基础实战特训营 
三更老师亲自上课示范,2天:理论+实操教学+直播教学演示+课后辅导

获取方式:

1.关注下方公众号↓↓↓↓

2.点赞+再看

3.在后台发送:“python” 即可领取资料福利/开通上课权限

资料已经打包好了,需要的关注公众号发送“111”领取

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/189906