python-函数定义

#抽象-函数定义
#内建函数callable函数可以用来判断函数是否可用
import math
x=1
y=math.sqrt
print(callable(x))
print(callable(y))

#函数定义:使用def语句
#斐波那契数列函数定义:
#为函数添加注释,并使其与函数一同存储在内存,以备后续查看:在函数开头直接写字符串,
#通过函数名.__doc__可以访问,也可以通过help(函数名)查看
def fibs(num):
    '计算num项斐波那契数列,并返回其列表'
    re=[0,1]
    for i in range(num-2):
        re.append(re[-2]+re[-1])
    return re
num=int(input("input fibs items number:"))
print(fibs(num))
print(fibs.__doc__)#__doc__为函数属性,doc左右都是两根下划线
print(help(fibs))

#函数参数存储在局部作用域,在函数内为参数赋予新值不会改变外部任何变量,但若列表作为参数,
#则在内部修改则会影响外部对应列表,这是需要传入列表的副本

#关键字参数:不需要记住参数的具体位置,而通过形参数来提供值
def Hello(greeting,name):
    print(greeting,name)
Hello(name='li',greeting='nice to meet you!')

#*号作用:函数参数前的*号为将其余位置的参数收集放置在一个元组中
def PrintItem(title,*text):
    print(text)
PrintItem('a,','b','c','d')

#**收集函数的关键字参数(默认参数)
def func(**item):
    print(item)
func(x=1,y='a',z="Z")

#参数使用实例
def story(**k):
    return "Once upon a time,there was a"\
           "%(job)s called %(name)s."%k
def power(x,y,**others):
    if others:
        print('Received redundant parameters:',others)
    return pow(x,y)

def interval(start,stop=None,step=1):
    'Imitats range() for step >0'
    if stop is None:
        start,stop=0,start#指定参数的值
    re=[]
    i=start
    while i<stop:
        re.append(i)
        i+=step
    return re

print(story(job='King',name='Gumby'))
params={'job':"Txt",'name':'text'}
print(story(**params))#参数收集的逆过程,在调用时加**
print(power(2,3))
print(interval(5,10,2))

#作用域:函数内的变量为局部变量,屏蔽同名的全局变量,不会影响全局变量,
#不同名时可以使用全局变量

s='A'
def PrintStr(s):
    print(s+'-'+globals()['s'])
#参数s与全局变量同名,需使用globals()返回全局变量所在的字典,然后以变量名作为键访问其内容;
PrintStr("a")

x=1
def Add():
    global x#global声明了x为全局变量,可以改变全局变量x的值,称为重绑定全局变量
    x=x+1
    print(x)

Add()

#函数的嵌套定义:可以用一个函数去定义另一个函数,并将其返回
def mul(x):
    def mulx(y):
        return x*y
    return mulx
x=mul(2)
print(x(10))#定义了x*y函数

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秘境之眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值