您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

Python基础知识(四)

Python函数

01、创建函数

# 创建函数语法
def funaction_name(parameters):
    """docstring"""
    statements(s)

02、调用函数

name = "Tom"
#定义函数
def greet(name):
    """This function greets to
	the person passed in as
	parameter"""
    print("Hello," + name + ",Good morning!")

    
# 调用函数
greet(name)	# Hello,Tom,Good morning!

03、文档字符串

  • 函数头之后的第一个字符串称为docstring,是文档字符串的缩写,其用于简要解释函数的作用 。

  • 通常使用三引号将文档字符串框选,我们将此字符串作为函数的__doc__属性 使用。

def greet(name):
    """This function greets to
	the person passed in as
	parameter"""
    print("Hello," + name + ",Good morning!")
# 输出此字符串
print(greet.__doc__)    
"""
This function greets to
	the person passed in as
	parameter
"""

04、返回语句

  • return语句用于退出函数并返回到调用函数的位置 。
  • 与java不同的是,python的return可以返回多个值 。
# 在列表中移除重复对象
def remove_duplicates(duplicate):
    uniques = []
    for num in duplicate:
        if num not in uniques:
            uniques.append(num)
    return uniques        
# 调用函数
duplicate = [2, 4, 10, 20, 5, 2, 20, 4] 
print(remove_duplicates(duplicate)) 	# [2, 4, 10, 20, 5]

05、变量的范围和寿命

  • 函数内定义的参数和变量在外部不可见 ,因而其具有局部范围 。
  • 函数内部变量的生命周期与函数执行的时间一样长 ,一旦我们从函数返回它们就会被销毁 。
# 示例1
def my_func():
	x = 10
	print("Value inside function:",x)
    
x = 20
my_func()
print("Value outside function:",x)    
"""
Value inside function: 10
Value outside function: 20
"""
  • 从示例1中,我们可以看到x的值最初为20。即使函数my_func()将x的值更改为10,它也不会影响函数外部的值。
  • 因为函数内部的变量x与外部的变量x不同 ,尽管它们具有相同的名称,但它们是两个具有不同范围的不同变量 。
  • 函数外部的变量从内部可见,是因为函数外部的x具有全局范围 。
  • 我们可以从函数内部读取这些值,但不能更改(写入)函数外部的x。
  • 为了修改函数外部变量的值,必须使用关键字global将函数内部的x声明为全局变量 。如示例2所示。
# 示例2
def my_func():
    global x
    x = 10
    print("Value inside function:", x)


x = 20
my_func()
print("Value outside function:", x)       
"""
Value inside function: 10
Value outside function: 10
"""

06、变量函数参数

  • 函数可以具有固定数量的参数 ,也可以定义一个接受可变数量参数的函数

  • 主要有三种:默认参数、关键字参数、任意参数

一、默认参数

  • 函数参数可以在Python中具有默认值 ,使用赋值运算符(=)为参数提供默认值 。
def greet(name, msg = "Goog morning!"):
    print("Hello," + name + "," + msg)
    
greet("Boy")	# Hello,Boy,Goog morning!
greet("Girl","How do you do?")	# Hello,Girl,How do you do?
  • 注意事项:

    • 没有默认值的参数,在函数调用时是必需的。而有默认值的参数是可选的,若提供了值,则覆盖默认值。
    • 函数中的任意数量的参数都可以具有默认值。但是一旦我们有一个默认参数,它右边的所有参数也必须有默认值。
    • 非默认参数不能遵循默认参数 。
    # 错误示例
    def greet(msg = "Goog morning!",name):	# SyntaxError: invalid character in identifier
    	 print("Hello," + name + "," + msg) 
    

二、关键字参数

  • 当我们调用具有某些值的函数时,这些值将根据其位置分配给参数 。
  • Python允许使用关键字参数调用函数 ,以这种方式调用函数时,可以更改参数的顺序(位置 )。
# 示例1
def greet(name, msg = "Goog morning!"):
    print("Hello," + name + "," + msg)

greet(name = "Boy", msg = "How do you do?")	# Hello,Boy,How do you do?
greet(msg = "How do you do?", name = "Boy")	# Hello,Boy,How do you do?
  • 我们可以在函数调用期间将位置参数与关键字参数混合使用 。
  • 要注意的是,关键字参数必须遵循位置参数 ,在关键字参数之后使用位置参数将导致错误。
# 示例2
def greet(name, msg = "Goog morning!"):
    print("Hello," + name + "," + msg)

greet("Boy", msg = "How do you do?")  	#  Hello,Boy,How do you do?
greet(msg = "How do you do?", "Boy")	# SyntaxError: positional argument follows keyword argument

三、任意参数

  • 事先并不知道将传递给函数的参数数量 ,Python允许我们通过具有任意数量参数的函数调用来处理这种情况 。
  • 在函数定义中,在参数名称前使用星号(*)来表示这种参数 。
def greet(*names):
    for name in names:
        print("Hello",name)
        
greet("Monica","Luke","Steve","John")
"""
Hello Monica
Hello Luke
Hello Steve
Hello John
"""

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进