Byte of Python-----Function

本文深入探讨了Python中的函数定义与使用,包括函数定义、调用、参数传递、局部与全局变量、返回值及文档字符串等内容,并提供了丰富的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##Python##
##Functions##
##2018/4/4#


##e.g.1
##function defenition
def say_hello():
    #缩进是必要的
    print('hello world.')
    print('hello python.')
##calling function
say_hello()


##函数参数
#e..g2
def print_max(a,b):
    if a > b:
        print(a)
    else:
        print(b)

print_max(233,10086)


##局部变量
#当你在一个函数的定义中声明变量时,它们不会以任何方式与身处函数之外但具有相同名称
#的变量产生关系,也就是说,这些变量名只存在于函数这一局部(Local)。这被称为变量的
#作用域(Scope)。所有变量的作用域是它们被定义的块,从定义它们的名字的定义点开始。
#e.g.3
x = 10086
def fun(x):
    print('x is',x)
    x = 2
    print('local x is',x)

fun(x)
print('x is still',x)


##global
##如果你想给一个作用域外的变量赋值,必须使用global语句
#e.g.4
v = 10086
def fun():#参数列表中必须不包含你想用global生命的变量
    global v
    print('v is',v)
    v = 2
    print('local v is',v)

fun()
print('v is still?',v)


##默认参数
#对于一些函数来说,你可能为希望使一些参数可选并使用默认的值,以避免用户不想为他们
#提供值的情况。默认参数值可以有效帮助解决这一情况。你可以通过在函数定义时附加一个
#赋值运算符( = )来为参数指定默认参数值。
#要注意到,默认参数值应该是常数。更确切地说,默认参数值应该是不可变的。
#e.g.5
def say_message(message,times = 1):
    print(str(message) * times)
say_message('I love China!\n')
#只有那些位于参数列表末尾的参数才能被赋予默认参数值,意即在函数的参数列表中拥
#有默认参数值的参数不能位于没有默认参数值的参数之前。



##关键字参数##important##
#如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过
#命名它们来给这些参数赋值——这就是关键字参数(Keyword Arguments)——我们使用命
#名(关键字)而非位置(一直以来我们所使用的方式)来指定函数中的参数。
#这样做有两大优点——其一,我们不再需要考虑参数的顺序,函数的使用将更加容易。其
#二,我们可以只对那些我们希望赋予的参数以赋值,只要其它的参数都具有默认参数值。
#e.g.6
def print_info(name = 'None',addr = 'None',age = 0,others = 'None'):
    print('My name is {} and I am coming from {}.\nLet me think.I am {} years old now.'.format(name,addr,age))
    print(others)
print_info(age=2233,name='bilibili',addr='www.bilibili.com',others='I love Python.emmm有什么奖励么...')



##return##
#return 语句用于从函数中返回,也就是中断函数。我们也可以选择在中断函数时从函数中返
#回一个值。
#e.g.7
def max(a,b):
    if a > b:
        return a
    else:
        return b
print(max(1,2))



##DocStrings##
#Python 有一个甚是优美的功能称作文档字符串(Documentation Strings),在称呼它时通常
#会使用另一个短一些的名字docstrings。DocStrings 是一款你应当使用的重要工具,它能够帮
#助你更好地记录程序并让其更加易于理解。令人惊叹的是,当程序实际运行时,我们甚至可
#以通过一个函数来获取文档!
#e.g.8
print(help.__doc__)
#e.g.9
def display():
    '''#This function just do nothing

    It is designed for shouwing this funtion'''
    return
print(display.__doc__)
#函数的第一行逻辑行中的字符串是该函数的 文档字符串(DocString)。

#该文档字符串所约定的是一串多行字符串,其中第一行以某一大写字母开始,以句号结束。
#第二行为空行,后跟的第三行开始是任何详细的解释说明。在此强烈建议你在你所有重要功
#能的所有文档字符串中都遵循这一约定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值