【转载】编程里最有用的偷懒工具「函数」 | 亲子课堂 第 8 课

2024-01-09 02:20

本文主要是介绍【转载】编程里最有用的偷懒工具「函数」 | 亲子课堂 第 8 课,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

森林

地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。
来到了森林,关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:

条件判断
运算符
函数
对象属性

边地之牢

在这里插入图片描述

关卡简介:

「边地之叉」这一关涉及的编程知识为:「函数」和 「参数」,大家需要理解函数及其参数是什么东西,究竟需要如何使用的,即可顺利过关。

通关展示:

在这里插入图片描述

思路讲解

进入本关,刚开始如果你不太明白这一关需要英雄做什么,那么你可以直接点击运行按钮,来观察游戏过程,你需要找到两个要点:

  1. 现有的代码是在让英雄在干什么?
  2. 游戏是为什么失败的
  3. 那么我们应该怎么做?
    在这里插入图片描述

这是在默认代码下的运行情况,可以知道:

  1. 默认代码的作用,就是让英雄循环往返与上方的两个点,上方的敌人一出现,就被英雄消灭了。
  2. 但英雄没有前往下方,导致下方的敌人击杀了村民,游戏失败。
  3. 因此我们可以照着现有的代码略作改动,增加一段攻击下方敌人的代码。

因此,此时的通关思路为:

1. 理解现有代码
2. 对现有代码略作改动,需要实现的功能是:巡逻保卫下方村民安全。

在这里插入图片描述
观察代码,在以往我们的代码都是仅有一个代码块,一个While True无限循环代码块包括了所有的运行代码块,而本关,除了While True代码块以外,还多了一块代码,它就是def函数代码块。

知识点:函数

函数是我们在上一关接触到的知识点
在这里插入图片描述
在Python里,我们使用关键字 def 来定义一个函数:
在这里插入图片描述
关键字def是英文单词define的缩写,具有定义,明确的意思,我们创建一个函数,也叫定义一个函数。
创建函数的格式如下:

def 函数名:
函数里的代码,也叫函数体#这里缩进4格

可以看到,我们创建函数的时候,使用了冒号,为函数创建了一个单独的代码块。

如果不记得代码块的概念了,可以点击链接,回到地牢复习一下:【转载】理解「代码块」概念,养成良好编程习惯 | 亲子课堂 第 3 课

调用函数的格式则是:

函数名()

十分简单。

函数的作用:

如果你有一段非常方便的代码,例如寻找敌人攻击敌人,那你要在每个可能有敌人的地方,都写一遍这一段代码,十分繁琐。

而函数,就是一个偷懒的工具,我们可以把它想象成一个机器人,我们在机器人的程序里(函数体内)写好代码,当我们需要使用这段代码时,呼叫机器人的名字(函数名加括号),就能叫出这机器人来帮忙,而不需要总是写一大串同样的代码了。

也因此,函数内的代码,它在没被调用时,是不会执行的。

在这里插入图片描述

就像图中的函数checkAndAttack,虽然它的代码在最上面,但它的代码不会被执行,而是直接跳过,当后面有需要调用函数时,才运行这一段代码。

了解了函数以后,我们再来了解一下参数

知识点:参数

我们刚刚说,函数就像一个机器人,代码写在机器人的程序里,因此我们可以这么理解,函数和其他的代码,它们是互不相关的,机器人的程序(函数)和正常运行的代码,是两个相互独立的程序。

因此,我们在正常运行的代码里写的一些变量,它们是不能直接使用到函数里的,因为它们是互不相关的两个程序。

而参数,就是帮我们把外界变量传入函数内的工具。

创建参数的方法:

def 函数名(参数名):

直接在函数名的括号内写上你要创建的参数名即可,你还可以创建不止一个参数:

def 函数名(参数名1,参数名2,参数名3……):

参数就是一个变量,它是专门用在函数里的,你可以提前写好它们各自要做的工作:

def Test(t1,t2):
hero.attack(t1)#这里缩进4格
hero.say(t2)#这里缩进4格

然后我们再按顺序,在调用的时候把我们的变量传入参数里:

def Test(t1,t2):
hero.attack(t1)#这里缩进4格
hero.say(t2) #这里缩进4格
enemy1 = hero.findNearestEnemy()
word = “你好!”
Test(enemy1,word)

Test(enemy1,word),就是把enemy1作为t1,word作为t2传入了Test函数里,这样此时执行Test函数的时候,英雄就是去攻击enemy1,并说“你好!”

明白了这两个知识点以后,我们再看到关卡里的代码:
在这里插入图片描述

此时我们就知道,上方一个代码块,是系统已经帮我们写好的攻击敌人,并回到中心点的代码块,无需修改。

那么我们以目前while True内的代码作为模板,写出攻击底部敌人的代码:

1. 移动到下方X标记处。
2. 到达下方后,寻找最近的敌人
3. 使用checkAndAttack()函数攻击下方新找到的敌人

通关代码

在这里插入图片描述

以上便是森林关卡「边地之叉」的过关教学了~

本攻略发于极客战记
极客战记——学编程,用玩的!

这篇关于【转载】编程里最有用的偷懒工具「函数」 | 亲子课堂 第 8 课的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/codecombat163/article/details/103728000
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/585635

相关文章

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda