【小学生都能看懂的Python入门教程】第一章:和 Python 来场第一次握手 (基础入门) 函数——编写简洁优雅的代码:给代码穿上高定西装

在这里插入图片描述

函数——编写简洁优雅的代码:给代码穿上高定西装

一、函数是什么?代码界的咖啡机

1. 定义与调用:程序员的摩斯密码

函数就像办公室的咖啡机:

  • 定义函数是组装咖啡机:
def make_coffee(beans, sugar=3):  # 默认加3块糖的温柔
    """咖啡生产流水线(程序员续命系统)"""
    process = f"研磨{beans}颗咖啡豆 → 加{sugar}块糖 → 注入灵魂"
    return "☕️ "+process
  • 调用函数是按下开关:
print(make_coffee(10))  # 输出:☕️ 研磨10颗咖啡豆 → 加3块糖 → 注入灵魂
print(make_coffee(15, 0))  # 程序员の美式自虐版

冷知识:程序员喜欢函数就像猫咪爱纸箱——因为能把自己藏的代码整齐收纳

二、参数与返回值:函数的快递服务

1. 参数类型全家桶

参数类型点餐类比代码示例
位置参数“来份鱼香肉丝”func(a, b)
默认参数“微辣,不要香菜”func(a, b=5)
关键字参数“饮料要冰可乐去冰”func(b=2, a=1)
可变参数“这些小吃各来一份”def func(*args)

2. 返回值:函数的伴手礼

def split_bill(total, people):
    aa = total / people
    return aa, aa * 0.1  # 返回AA金额和小费

cost, tip = split_bill(300, 4)
print(f"每人付{cost}元,建议小费{tip}元")  # 输出:每人付75.0元,建议小费7.5元

为什么函数要返回值?
就像你去便利店不能只给钱不拿商品——总得带点什么回来!

三、变量作用域:办公室与茶水间的战争

1. 全局变量 vs 局部变量

company = "代码乌托邦"  # 全局变量:全公司可见的通知栏

def new_hire(name):
    desk = "A区03工位"  # 局部变量:只在本函数有效的便利贴
    print(f"{name}加入了{company},坐在{desk}")

new_hire("程序员暖暖")  # 正常运行
print(desk)  # 报错!就像试图查看别人的私人抽屉

2. global声明:打破次元壁的喇叭

coffee_cups = 0

def drink_coffee():
    global coffee_cups
    coffee_cups += 1
    print(f"今日续命第{coffee_cups}杯")

drink_coffee()  # 第1杯
drink_coffee()  # 第2杯(手开始颤抖)

情景剧
全局变量:我是公司公告板,谁都能看!
局部变量:我是你工位上的便利贴,离职就消失
global:我是行政部的扩音器,能让便利贴上公告板

四、实战演练:巧克力侦探函数

需求说明

从朋友数据中找出:

  • 巧克力消费之王
  • 平均消耗量
  • 生成甜蜜报告

代码全解析

def find_chocoholic(friends):
    """巧克力猎人(甜蜜陷阱探测系统)"""
    total = 0
    max_eater = ""
    max_amount = 0
    
    for name, choc in friends.items():
        total += choc
        if choc > max_amount:
            max_amount = choc
            max_eater = name
    
    avg = total / len(friends)
    report = f"""
    🍫 甜蜜调查报告 🍫
    冠军:{max_eater}(月均{max_amount}g)
    平均:{avg:.1f}g
    警告:本月已超健康标准{max(0, avg-100)}g
    """
    return max_eater, avg, report

# 朋友巧克力消耗数据(g/月)
friends = {
    "小明": 500,  # 自称只是"偶尔吃"
    "大壮": 250,
    "Lucy": 800,  # 甜食消灭者
    "张总": 150   # 在控糖的倔强
}

king, avg, report = find_chocoholic(friends)
print(report)

运行结果

🍫 甜蜜调查报告 🍫
    冠军:Lucy(月均800g)
    平均:425.0g
    警告:本月已超健康标准325.0g

冷知识:这个函数不仅能找巧克力狂魔,把choc换成奶茶消费就能变身奶茶侦探——这就是函数的魅力!

五、函数式编程の禅

# 新手写法
a = 5
b = 10
c = a + b
print(c)

# 函数式写法
def add(x, y):
    """数字恋爱结婚登记处"""
    return x + y

print(add(5, 10)) 

# 大师写法(仅供观赏)
(lambda x,y: x+y)(5,10)

为什么程序员喜欢写函数?
为了在代码里玩俄罗斯套娃,还美其名曰"模块化设计"

结语:代码裁缝的自我修养

现在你已经掌握:
✅ 函数的定义与调用姿势
✅ 参数传递的多种玩法
✅ 变量作用域的边界法则
✅ 实际项目的函数封装

当你能把复杂问题像折纸一样拆解成函数模块时,就离写出"别人看不懂但觉得很厉害"的代码不远了。记住,好的函数就像香水——功能明确、封装精美、余韵悠长。

下期预告:《列表——你的超级笔记本:Python界的万能收纳术》


课后彩蛋:在巧克力函数中添加以下代码,收获隐藏惊喜:

if max_amount > 1000:
    report += "\n    🚑 医疗建议:建议直接预约牙医!"
# 试试给Lucy改成1500g输入
posted @   爱上编程技术  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示