【Python修仙笔记.3】Python函数作为秘技 - 封装你的仙法

章节3: 函数作为秘技 - 封装你的仙法

故事情节

王麻子刷怪升级,灵力破百。老头见他重复写代码攻击,说:"小子,你这是在浪费灵气!用函数封装秘技,一次定义,多次调用,像我的'九阳神功'!"

王麻子:"函数?听起来高端!教我,老头!"

老头:"哈哈,函数是修仙界的绝学,能输入参数,输出结果。来,定义一个攻击函数!"

王麻子学成后,一招秒群妖:"太爽了,这才是修仙!"

编程知识点讲解

老头:"def function_name(parameters): 代码块 return result"

例如:def add_power(current, increase): return current + increase

调用:new_power = add_power(100, 50)

默认参数,*args, **kwargs简单提。

老头:"函数像丹药,输入原料,输出功效。别忘return,不然无果而终!"

实战代码示例

python 复制代码
# 定义攻击函数
def attack(enemy_power, my_power=100):
    if my_power > enemy_power:
        return "胜利!灵力+10"
    else:
        return "失败!灵力-5"

# 调用
result = attack(80)
print(result)

# 带多个参数的函数
def calculate_total_power(*powers):
    total = 0
    for p in powers:
        total += p
    return total

print(calculate_total_power(10, 20, 30, 40))

趣味练习题

  1. 定义一个函数,输入名字,输出"欢迎加入修仙界,[名字]!"

  2. 写一个函数计算两数和,返回结果。用它算1+1=?

  3. 创建函数模拟掷骰子(random模块),返回1-6随机数。调用几次看运气!

练习题答案与解释

  1. 欢迎函数:

    python 复制代码
    def welcome(name):
        print(f"欢迎加入修仙界,{name}!")
    
    welcome("王麻子")  # 示例调用

    解释: 定义函数welcome接受参数name,并使用print输出欢迎消息。这练习了函数定义、参数传递和调用,封装了重复操作。

  2. 加法函数:

    python 复制代码
    def add(a, b):
        return a + b
    
    result = add(1, 1)
    print(result)  # 输出: 2

    解释: 函数add接受两个参数并返回它们的和。调用时传入1和1,演示了return语句的重要性,用于获取计算结果。

  3. 掷骰子函数:

    python 复制代码
    import random
    
    def roll_dice():
        return random.randint(1, 6)
    
    print(roll_dice())  # 示例调用,可能输出3
    print(roll_dice())  # 另一次,可能输出5

    解释: 导入random模块,函数roll_dice使用randint生成随机数。这介绍了模块导入和无参数函数,模拟随机事件如修仙抽签。

本章知识点总结

  • def定义函数,parameters输入,return输出。

  • 调用函数重复使用代码。

  • 默认参数和可变参数让函数更灵活。

  • 函数是代码的法宝,封装好,修仙路更顺!

相关推荐
m0_748554817 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
smj2302_796826527 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
小码哥_常8 小时前
解锁AI编程密码:程序员常用的10个AI提示词
后端
阿正呀8 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
2501_901200538 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
_.Switch9 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
Mr_sst9 小时前
Claude Code 部署与使用保姆级教程(2026 最新)
python·ai
直奔標竿9 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
瞎某某Blinder9 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
金銀銅鐵9 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端