8.Python中的函数整理总结(程序结构、模块、包、命令行参数、多项式相加程序、全排列程序)

一、函数

函数的定义和调用:

  • 函数是重用的程序段。他们允许你给一段语句命名一个名字,这是函数定义。
  • 你可以在你的程序的任何地方使用这个名称运行这个语句块,这是函数调用。
  • 内置函数不用定义,直接调用。
  • 自定义函数语法格式:
    def 函数名(参数表)
    函数体
  • 函数要先定义,再使用
#如要定义函数:y=x^2+1
>>> def f(x):
	value=x**2+1
	return value

>>> n=int(input())
2
>>> y=(f(n))
>>> print(y)
5

求斐波那契数列的和:

>>>def fibs(n):
	result=[1,1]
	for i in range(n-2):
		result.append(result[-2]+result[-1])
	return result

>>> print(fibs(5))
[1, 1, 2, 3, 5]

匿名函数–lambda表达式:
函数定义的另一种方法是用lambda表达式,它定义了一个匿名函数。lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,后面是一个表达式。作为表达式,lambda返回一个函数值。lambda用来编写简单的函数,而def用来处理更强大任务的函数。

>>>g=lambda x,y,z:x+y+z
>>> g(1,4,5)
10

函数参数:

  • 函数定义时的参数称为形参,这些参数就像变量一样。
  • 参数在函数定义的圆括号内指定,用逗号分割。
  • 当我们调用函数时,函数中的参数值称为实参
  • 函数形参取得的值是你调用函数时提供的实参

位置参数:

  • Python处理参数的方式要比其他语句更加灵活。其中,最熟悉的参数类型是位置参数,传入参数的值是按照顺序依次赋值给形参
>>>from math import sqrt
>>> def dis(x1,y1,x2,y2):
	print("x1={},y1={},x2={},y2={}".format(x1,x2,y1,y2))
	return sqrt((x1-x2)**2+(y1-y2)**2)

>>> print(dis(1,3,4,5))
x1=1,y1=4,x2=3,y2=5
3.605551275463989

关键字参数:

  • 为了避免位置参数严格的位置要求,调用参数时可以指定对应形式参数的名字,这是关键字参数,他甚至可以采用与函数定义时不同的顺序
>>>from math import sqrt
>>> def dis(x1,y1,x2,y2):
	print("x1={},y1={},x2={},y2={}".format(x1,x2,y1,y2))
	return sqrt((x1-x2)**2+(y1-y2)**2)

>>> print(dis(x1=1,y1=3,x2=4,y2=5))
x1=1,y1=4,x2=3,y2=5
3.605551275463989

位置参数和关键字参数混合:

  • 如果同时出现两种参数形式,首先应该写出的是位置参数,后是关键字参数
>>>from math import sqrt
>>> def dis(x1,y1,x2,y2):
	print("x1={},y1={},x2={},y2={}".format(x1,x2,y1,y2))
	return sqrt((x1-x2)**2+(y1-y2)**2)
>>> print(dis(1,3,y2=5,x2=4))
x1=1,y1=4,x2=3,y2=5
3.605551275463989

下面程序出错

>>> from math import sqrt
>>> def dis(x1,y1,x2,y2):
	print("x1={},y1={},x2={},y2={}".format(x1,x2,y1,y2))
	return sqrt((x1-x2)**2+(y1-y2)**2)
>>> print(dis(1,y1=3,4,5
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值