java函数的编写-编写一个截取字符串的函数
函数可以理解为实现某种功能的一系列代码的集合。 这样做的一个最明显的好处是,如果我们需要重复使用某个函数,我们只需要写一次这些语句来使用该函数,然后就可以在程序中调用这个函数,而不再需要重写这些语句。
创建和调用
创建函数
创建函数使用 def 关键字实现,
def function_name(parameters): do some things
function_name是函数的名称(标识符),调用函数时使用; parameters为函数的参数(如果有多个,用逗号隔开),如果指定,调用函数时需要传入对应的实际数据; 如果参数不需要参数,这里为空,调用时不需要传入数据。
调用函数
调用函数非常简单,只需要在调用位置写上函数名,传入需要的参数即可。
function_name(parameters)
范围
函数主要用来接收数据,然后使用函数中的代码将数据处理成我们需要的内容,那么如何将数据传入函数中供其使用呢? 这就是参数的函数,参数用来接收函数需要传入的数据,然后对这些参数进行处理。
形参与实参
函数定义时指定形式参数; 实际参数在使用函数时指定。
函数是我们自己写的,所以我们很清楚这个函数能做什么,实现这个功能需要什么数据,所以定义函数时括号里写的参数是形参,用来指定函数可以接收并处理哪些数据。 我们在使用这个函数的时候,需要根据它的要求传入它需要的数据,而这个数据就是实参。
def summation(x, y): z = x + y print(str(x) + "+" + str(y) + "=" + str(z)) summation(2, 5)
上述函数中,x、y为形参,2、5为实参。
位置参数
位置参数也称为强制参数,必须按正确的顺序传入函数,即调用的次数和位置必须与定义的相同。
数量必须与定义一致 位置必须与定义一致
def computeBMI(person, height, weight): bmi = weight / ((height / 100) ** 2) print(person + "的身高为:" + str(height) + "厘米") print(person + "的体重为:" + str(weight) + "千克") print(person + "的指数为:" + str(bmi) + "kg/m2") # 正常调用 computeBMI("小明", 183, 74) # 错误调用 computeBMI(183, "小明", 74)
关键字参数
这种参数形式是指使用形式参数的标识符来确定输入参数值。 通过该方法指定实参时,不再需要与形参的位置完全一致,只要参数名写对即可。 这样就可以免去需要记住参数位置的麻烦,使函数调用和参数传递更加灵活。
def computeBMI(person, height, weight): bmi = weight / ((height / 100) ** 2) print(person + "的身高为:" + str(height) + "厘米") print(person + "的体重为:" + str(weight) + "千克") print(person + "的指数为:" + str(bmi) + "kg/m2") computeBMI(height=183, person="小明", weight=74)
默认参数
调用函数时,如果没有给参数赋值,就会抛出异常。 为了解决这个问题,可以为参数设置一个默认值,即在定义函数时为形参指定一个默认值。 这样即使调用时没有传入参数的实际值也不会报错,程序会自动使用定义时设置的默认值。
为形参设置默认值时,该值必须是不可变对象,如数字、字符串、元组等。
def function(parameter=defaultvalue): pass
例子,
def computeBMI(height, weight, person="路人"): bmi = weight / ((height / 100) ** 2) print(person + "的身高为:" + str(height) + "厘米") print(person + "的体重为:" + str(weight) + "千克") print(person + "的指数为:" + str(bmi) + "kg/m2") computeBMI(height=183, person="小明", weight=74) print() computeBMI(174, 64)
为形参设置默认值时,形参必须放在末尾,否则会抛出异常。
在Python中,可以使用函数的__defaults__来查看函数参数的默认值。
可变参数
可变参数也称为变长参数,即实际传入函数的参数可以是任意数字。 定义可变参数时,主要有两种形式:*parameter和**parameter。
*范围
这种形式的意思是接收任意数量的实际参数,然后把它们放到一个元组中,
def computeBMI(*persons): for person in persons: for item in person: person = item[0] height = item[1] weight = item[2] bmi = weight / ((height / 100) ** 2) print("{:s} 的身高为:{:d} 厘米".format(person, height)) print("{:s} 的体重为:{:d} 千克".format(person, weight)) print("{:s} 的指数为:{:f} kg/m2".format(person, bmi)) print() persons = [("小明", 183, 74), ("小红", 167, 55), ("小刚", 174, 69)] computeBMI(persons)
**范围
这种形式的意思是像关键字参数一样接收任意数量的显式分配的实际参数并将它们放入字典中,
def show_constellaiton(**persons): for person, constellation in persons.items(): print("{:s} 的星座是: {:s}".format(person, constellation)) persons = {"小明":"射手座", "小红":"水瓶座", "小刚":"天蝎座"} show_constellaiton(**persons)
在使用这两种可变参数形式时,如果将已有的列表(或元组)或字典作为可变参数传入函数,需要在其前面加上一两个星号(*),否则会抛出异常。
返回值
一个函数最重要的作用就是通过它的内容代码对输入的参数进行处理java函数的编写,得到一个结果进行展示java函数的编写,或者作为参数传递给其他函数进行处理,那么如何才能得到函数的处理结果呢? 返回值就是用来满足这个要求的。
在Python中,使用return关键字返回函数的处理结果,即返回值。 返回值可以是Python支持的任何数据类型,无论return语句出现在函数的哪个位置,只要执行到,都会直接结束函数,不管后面有多少代码不执行。
def function(parameters): return values
lambda(匿名函数)
我们知道,要定义一个函数,我们需要给它一个标识符,以便在需要的地方调用它。 匿名函数是没有名称(标识符)的函数。 这类函数只能在定义的地方使用一次,不能在别处调用。 它的语法如下,
value = lambda parameters : expression
parameters是匿名函数的参数,可以是多个,用逗号隔开; expression是处理参数的表达式,只能进行简单的计算,如算术运算、逻辑运算等,不能使用流程控制语句,如if、for、while等; value用于接收函数处理的结果,即接收函数的返回值。
例子:
import math circle_area = lambda r : math.pi * r * r print(circle_area(10)) rect_area = lambda a, b : a * b print(rect_area(10, 23))
变量及其作用域
变量可以理解为实际数据的名称,或者标签。 把实际的数据赋值给一个变量,这样在需要的时候就可以通过变量来调用,而不是每次用到的时候都写实际的数据。 比如说到《兰亭集序》,我们就知道这是王羲之的行书作品,不用说全文就知道你在说什么关于《兰亭集序》。 《兰亭集序》四字可理解为“永和九年,葵丑岁,暮春初……”。
在Python中,可以通过直接赋值的方式创建各种类型的变量,而无需事先声明变量的数据类型。 变量的名称需要遵循 Python 中标识符的明确规范。
变量的作用域是指它在程序中可以使用的范围。 如果超过了变量的可用范围,就会发生错误。
局部变量
局部变量是指在函数内部定义和使用的变量,只能在定义它的函数内部使用。 局部变量只会在函数运行时被创建和使用,函数运行前后该变量将不复存在。
全局变量
全局变量是可以在函数内部和外部使用的变量。 全局变量主要有以下两种情况:
使用 global 关键字在函数内部定义在函数外部定义的变量
◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
为了帮助大家快速上手python,我在这里准备了一套“经典入门教程”。 这些是入门的付费教程,现在它们作为免费礼物赠送给所有观众。 私信我《Python入门》领取!
点击我的头像关注我进入首页,会看到私信按钮。 私信我《Python入门》,一言难尽,速速get!