Python——函数

函数的参数和变量类型

  1. parameter:形参; argument:实参
  2. 函数文档:‘函数下面第一行进行解释函数内容’,funtion_name.doc 可以返回函数文档
  3. 关键字参数:
>>> def saysome(name, words):
	print(name + '->' + words)

	
>>> saysome('李宁', '一切皆有可能')
李宁->一切皆有可能
>>> saysome('一切皆有可能', '李宁')
一切皆有可能->李宁
>>> saysome(words = '一切皆有可能', name = '李宁')
李宁->一切皆有可能
  1. 默认参数:在函数定义的时候赋予初值,如果忘了传递参数,它就会使用初值
>>> def saysome(name = '苍井空', words = '我脱光衣服躺在镜头前是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗!'):
	print(name + '->' + words)

	
>>> saysome()
苍井空->我脱光衣服躺在镜头前是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗
  1. 收集参数:可变参数,不清楚函数需要几个参数,系统默认将收集参数存为一个元组,所以可以很多个
>>> def test(*parameter):
	print('参数的长度是:',len(parameter))
	print('第二个参数是:',parameter[1])

	
>>> test(1,'小甲鱼', 3.14, 36, '44')
参数的长度是: 5
第二个参数是: 小甲鱼
  1. 在收集参数和确定参数同时使用时,在调用函数时,应用关键字参数进行调用确定参数,否则它会将默认全为收集参数
  2. print(*objects, sep=’’,end=’\n’,file=sys.stdout,flush=False) : 这是print()函数的定义方式
  3. 函数和过程:Python只有函数没有过程,过程可以理解为没有返回值的函数
  4. Return 返回多个返回值时,用列表[1,2,3]、元组(1,2,3)即可
  5. 局部变量(Local)和全局(Global)变量
  6. 函数内部对全局变量重新赋值,Python会自动在栈里面创建一个相同名字的局部变量,函数运行完不会影响原来的全局变量。但是如果是调用全局变量,进行一些操作,比如说逆序,排序之类的,还是会影响的
  7. global 关键字:在按函数中可以修改全局变量,只需要用global关键字即可

内嵌函数和闭包

  1. 内嵌函数:定义一个函数的时候,里面可以再定义一个函数,需要注意作用于,内部函数作用域在外部函数之内
>>> def fun1():
		print("我正调用fun1()")
		def fun2():
	    	print("我正调用fun2()")
		fun2()

	
>>> fun1()
我正调用fun1()
我正调用fun2()
>>> fun2
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    fun2
NameError: name 'fun2' is not defined
  1. 闭包:编程范式:closure :下面的funy()就是一个闭包,它返回的是函数 Return funy!!!
>>> def funx(x):
		def funy(y):
			return x * y
		return funy

>>> i = funx(8)
>>> i
<function funx.<locals>.funy at 0x000001BB9F4B65E0>
>>> type(i)
<class 'function'>
>>> i(5)
40
>>> funx(8)(5)
40
  1. Return fun2() 和 Return fun是不同的,前者是返回fun2()运算后的结果,不加就是返回fun2这个函数
  2. nonlocal:在内嵌函数(假设一共两层)想使用外层函数的变量时,可以用这个声明它是非局部变量,这里只涉及内外层,而不涉及全局变量。

lambda表达式->(匿名函数)

  1. g = lambda x : 2 * x + 1;g(5) -> 11 # 对于使用次数不太多的函数可以这样定义,易读
>>> lambda x,y : x+y
<function <lambda> at 0x0000024C474355E0>
>>> a = lambda x,y : x+y
>>> a(5,6)
11

两个牛逼的BIF

  1. filter()函数:返回经过函数运算后是真的运算结果。第一个参数为None时,筛选出真的值
>>> odd = lambda x : x % 2
>>> show = filter(odd,[i for i in range(1,101)])
>>> list(show)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

可以改写成一行:

list(filter(lambda x : x % 2, [i for i in range(1,101)]))
  1. map():映射:将第二个可迭代数据进行第一个函数的运算后输出
list(map(lambda x : x * 2, range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python的计算思维训练主要涉及到函数的概念。函数Python中的基本编程结构,通过函数可以将一系列操作封装起来,提高代码的复用性和可维护性。 首先,函数的定义和调用是计算思维中重要的一部分。学习者需要理解如何使用def关键字定义函数,并且学会传入参数和返回数值。这能够帮助他们将复杂的问题拆分成更小的部分,然后再分别解决。 其次,函数的参数和返回值的运用是培养计算思维的有效途径。学习者需要理解函数的参数可以是任意类型的数据,也可以是默认值,还可以是可变数量的参数。同时,他们需要掌握函数可以返回单个数值、多个数值或者其他函数的能力。 此外,函数的嵌套和递归是培养计算思维的重要方法。学习者需要了解函数可以在其内部调用其他函数,从而实现更复杂的功能。而递归则可以帮助他们理解问题的分治和循环求解策略。 最后,函数的高阶用法和闭包也是培养计算思维的关键。学习者需要明白函数可以作为参数传递给其他函数,也可以作为返回值被另一个函数使用。此外,他们还需要掌握闭包的概念和运用,以便更好地理解函数的作用域和生命周期。 通过学习和实践以上内容,学习者不仅可以掌握Python函数的用法,还可以培养出较强的计算思维能力,从而更好地应对复杂的问题和挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值