(点击图片进入关卡)
使用带参数的自定义函数简化代码!
简介
函数 是编码中的重要概念!将代码中单独的重复部分用函数表示,能使代码变得更加简洁。
函数通常需要 参数 。参数让函数具有更多灵活性,且不妨碍函数优化和简化代码的作用。参数在函数 调用 时被放到圆括号 () 之间。
被调用时的实际参数,在函数定义时同形式参数对应。
# 这个函数拥有一个参数:'target': def checkAndAttack(target): # 'target'是预定义的变量。 if(target): hero.attack(target) enemy = hero.findNearestEnemy() # 下面,'enemy'是参数,传递给checkAndAttack作为'target'。 checkAndAttack(enemy)
默认代码
# 使用 checkAndAttack 函数让代码易读。 # 这个函数有一个参数。 # 参数是一种给函数传递信息的方式。 def checkAndAttack(target): # 参数'target'只是一个变量! # 它包含了函数调用时的参数。 if target: hero.attack(target) hero.moveXY(43, 34) while True: hero.moveXY(58, 52) topEnemy = hero.findNearestEnemy() # 使用 checkAndAttack 函数,并使用 topEnemy 变量。 checkAndAttack(topEnemy) # 移动到底部的X标记处。 # 创建名为 bottomEnemy 的变量,寻找最近敌人。 # 使用 checkAndAttack 函数,并使用 bottomEnemy 变量。
概览
函数 是代码的重要组成部分,能够将代码分割成独立的部分,帮助我们更好地理解代码。
函数 不仅能够执行独立动作,还能使用传入的参数。
实参 是函数调用时 () 内包含的信息。
形参 则是传入函数的信息在函数内所使用的变量。
# 函数名后面的'target'是'形参'。 # 形参作为新变量,装载从函数外传入的信息。 def checkAndAttack(target): # 'target'是形参预定义变量,只在函数内使用。 if target:# 检验'target'是否存在。 hero.attack(target) # 若是如此,那就攻击! enemy = hero.findNearestEnemy() # 下面的变量enemy是实参。 # 调用函数时使用实参,能够让函数基于输入内容做出不同动作。 # 这里,我们会攻击任意传入函数作为参数的敌人。 hero.checkAndAttack(enemy)
边地之叉 解法
# 使用 checkAndAttack 函数让代码易读。 # 这个函数有一个参数。 # 参数是一种给函数传递信息的方式。 def checkAndAttack(target): # 参数'target'只是一个变量! # 它包含了函数调用时的参数。 if target: hero.attack(target) hero.moveXY(43, 34) while True: hero.moveXY(58, 52) topEnemy = hero.findNearestEnemy() # 使用 checkAndAttack 函数,并使用 topEnemy 变量。 checkAndAttack(topEnemy) # 移动到底部的X标记处。 hero.moveXY(58, 16) # 创建名为 bottomEnemy 的变量,寻找最近敌人。 bottomEnemy = hero.findNearestEnemy() # 使用 checkAndAttack 函数,并使用 bottomEnemy 变量。 checkAndAttack(bottomEnemy)
本攻略发于极客战记官方教学栏目,原文地址为:
https://codecombat.163.com/news/jikezhanji-senlinbiandizhicha
来源:oschina
链接:https://my.oschina.net/u/4441837/blog/4290416