函数的作用:
函数的主要作用是结束重复编写代码,函数的编写更容易理解、测试代码。
阅读指南: #符号>>>后表示输入的代码,无开头表示为运行的结果 >>>print("Hello,python") Hello,python
python中函数定义方法:
def function_name():#定义函数的名字格式为"def 函数名称():"括号一定要加,即使里面没有任何数据。 move code#你需要运行的代码 function_name()#调用你定义的函数
实例:
>>>def names():#定义一个叫做names()的函数
"""打印名字"""
>>> print("My name is lixiang")#该行就是函数的子代码,调用函数时就会运行该代码 >>>names()#调用定义的函数"names()" My name is lixiang#调用函数后的结果
函数不单单只能够重复代码,也可以将函数外部的数据传递至函数内部的代码中。
形参and实参:
>>>def names(name1):#括号中的name1就是 形参 它的主要作用就是接收来自 实参 的数据
"""打印名字"""
>>> print(f"My name is {name1}") >>>names("lixiang")# 括号中的"lixiang" 就是 实参 #形参 和 实参 主要作用就是传递函数外的数据至函数内部
形参调用实参中的方法:
位置调用实参:
#位置调用就是基于实参和形参的位置来进行调用函数 >>>def information(name,age):#定义函数名和形参
"""填写个人信息""" >>> print(f"{name} is {age} old year")#形参数据的使用 >>>information("lixiang","22")#实参传递数据给形参,而传递的方式是位置传递
lixiang is 22 old year
关键字调用实参:
>>>def information(name,age):#定义函数名和形参
"""填写个人信息""" >>> print(f"{name} is {age} old year")#形参数据的使用 >>>information(age="22",name="lixiang")#通过关键字的传递来传递实参,在函数中使用"="符号时,两边不要加空格
lixiang is 22 old year
形参默认值:
有些时候我们需要默认值,当你不填写的时候它会有个默认值。比如说我新增默认信息 来自:“中国”
>>>def information(name,age,come_from="china"):#第三个为默认值"china" 需要将填写默认值的数据填写在形参的最后面,这样才可以更好的使用位置调用实参。 """默认参数值"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形参数据的使用 >>>information(age="22",name="lixiang")#无需填写其他信息时 lixiang is 22 old year.He comes from china #输出为默认值China
当你填写数据的时候就会把默认值覆盖掉
>>>def information(name,age,come_from="china"):#第三个为默认值"china" 需要将填写默认值的数据填写在形参的最后面,这样才可以更好的使用位置调用实参。
"""填写个人信息"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形参数据的使用 >>>information("lixiang","22","America")#需要更改信息时 lixiang is 22 old year.He comes from America#输出结果从China更改为America
返回值:
内置方法return可指定返回的值,在函数内部代码中,如果遇到return则会立即停止,并且返回你指定的值。在默认没有指定的情况下,返回的值时none
不指定返回值时
>>>def information(name,age,come_from="china"):#定义函数名和形参
"""填写个人信息"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形参数据的使用 >>> return#未指定任何的值进行返回 >>>x = information("lixiang","22","America")用一个变量名x去接收返回的值 >>>print(x)#打印返回的值 lixiang is 22 old year.He comes from America None#返回的值
指定返回值时:
>>>def information(name,age,come_from="china"):#定义函数名和形参
"""填写个人信息"""
>>> print(f"{name} is {age} old year.He comes from {come_from}")#形参数据的使用 >>> return name#指定返回name >>>x = information("lixiang","22","America")用一个变量名x去接收返回的值 >>>print(x)#打印返回的值 lixiang is 22 old year.He comes from America lixiang#返回的值
让实参变成可选的:
在实际的使用中可能有些时候需要实参,但有时候不需要,调用函数时不可能一直更改定义好的函数,这时需要我们提供可以选择的实参。
>>>def cars_list(colour,style,depreciation=''):#depreciation变成可选择的 >>> """让新旧程度变成可选择的内容""" >>> if depreciation:#depreciation有内容的情况下,布尔值为True >>> print(f"colour is {colour},style is {style},depreciation is {depreciation}") >>> else: >>> print(f"colour is {colour},style is {style}") >>>cars_list("red","suv","8.5")#填写新旧程度下的情况下
colour is red,style is suv,depreciation is 8.5
没有填写内容的情况下:
>>>def cars_list(colour,style,depreciation=''):#depreciation变成可选择的 >>> """让新旧程度变成可选择的内容""" >>> if depreciation:#depreciation有内容的情况下,布尔值为True >>> print(f"colour is {colour},style is {style},depreciation is {depreciation}") >>> else: >>> print(f"colour is {colour},style is {style}") >>>cars_list("red","suv",)#没有填写新旧程度下的情况下 colour is red,style is suv
传递任意数量的实参:
>>>def make_pizza(*toppings):#前面加上一个符号*,可接收任意数量的实参,可配合之前说明的的内容填入,该类应该放置形参的最后 >>> """打印顾客点的所有配料""" >>>print(toppings) >>>make_pizza('pepperoni') >>>make_pizza('mushrooms', 'green peppers', 'extra cheese') ('pepperoni',) ('mushrooms', 'green peppers', 'extra cheese')
创建一个新列表,并传递任何数量的形参**
def build_profile(first, last, **user_info):#两个**后会创建一个名为user_info的列表 """创建一个字典,其中包含我们知道的有关用户的一切""" profile = {} profile['first_name'] = first profile['last_name'] = last for key, value in user_info.items(): profile[key] = value return profile user_profile = build_profile('albert', 'einstein', location='princeton', field='physics') print(user_profile)