python函数

本文详细介绍了Python函数的定义语法,包括注释、空格缩进和可变参数。通过实例展示了如何定义和调用斐波那契数列函数。此外,还探讨了Python中函数和对象的动态性,可以随时添加或删除成员。同时,解释了函数内部如何修改实参值,特别是对于可变序列的情况。最后,提到了默认值参数的使用,使函数调用更加灵活。

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

##函数定义
####一、 函数定义语法:

  • def 函数名([参数列表]):
    ‘’‘注释’’’
    函数体
    注意事项
  • 函数形参不需要声明类型,也不需要指定函数返回值类型
  • 即使该函数不需要接收任何参数,也必须保留一对空的圆括号
  • 括号后面的冒号必不可少
  • 函数体相对于def关键字必须保持一定的空格缩进
  • Python允许嵌套定义函数

我们来举一个例子,生成斐波那契数列的函数定义和调用

def fib(n):
	a,b = 1,1
	while a < n:
		print(a,end = ' ')
		a,b = b,a+b
	print()
fib(1000)
  • Python中的函数和自定义对象的成员也是可以随时发生改变的,可以为函数和自定义对象动态增加新成员。
>>> def func():
    print(func.x)                 #查看函数func的成员x
>>> func()                            #现在函数func还没有成员x,出错
AttributeError: 'function' object has no attribute 'x'
>>> func.x = 3                        #动态为函数增加新成员
>>> func()
3
>>> func.x                            #在外部也可以直接访问函数的成员
3
>>> del func.x                        #删除函数成员
>>> func()                            #删除之后不可访问
AttributeError: 'function' object has no attribute 'x'
  • 在有些情况下,可以通过特殊的方式在函数内部修改实参的值。
def modify(v,item):
    v.append(item)
a = [2]
modify(a,3)
print(a)
  • 也就是说,如果传递给函数的实参是可变序列,并且在函数内部使用下标或可变序列自身的方法增加、删除元素或修改元素时,实参也得到相应的修改。
def modify(d):
    d['age'] = 38
a = {'name':'Dong','age':30,'sex':'Male'}
modify(a)
print(a)
##输出:{'name': 'Dong', 'age': 38, 'sex': 'Male'}
  • 默认值参数
def say(message,times = 1):
    print(message * times)
say('hello')
##输出:hello
say('hi',7)
##输出:hihihihihihihi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值