Python学习笔记01#函数

函数

1.如何定义函数

>>>def MyFirstFunction():#定义函数
 		print('这是我创建的第一个函数')#设置函数
>>>MyFirstFunction()#使用函数 
这是我创建的第一个函数
>>>def MySecondFunction(name):#定义带参数的函数
		print (name + '我爱你')
 >>>MySecondFunction('python')
python我爱你
>>> def add(num1,num2):
		return (num1 + num2)#将函数运行的结果返回
>>> print(add(1,6))#实测不写print也能得出结果
7

2.函数的参数

>>> def SaySome(name,words):
		print(name + '>' + words)
>>> SaySome('我','你')>>>> SaySome(words = '你',name = '我')>

3.可变参数
可变参数就是传入的参数的个数是可变的(非固定)
在参数前加*,如*args,使用时可以输入一堆参数,也可以输入list或tuple(拆包语法:要在前面加*号,如*list),函数内接收到的其实是一个元组

>>> def test(*args):
		print('参数长度',len(args))
		print ('第二个参数',args[1])
>>> test(1,'我',3.14,5,6,7,8)
参数长度 7
第二个参数 我

ps:函数运行的结果本身不能保存,要借助return返回

4.关键字参数
参考自https://blog.csdn.net/zxy987872674/article/details/55252501?utm_source=app&app_version=4.9.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

可变参数允许你传入任意个参数,这些可变参数在函数调用的时候自动组装为一个tuple。而关键字参数允许你传入任意个含参数名的参数,可以是一堆含参数名的参数如city=‘beijing’,也可以是一个字典(拆包语法:要在字典名前加**号,如**kw),这些参数会在调用函数时在内部自动组装为一个dict。定义函数时,一般形式为**kwargs。如:

def person(name,age,**kwargs):
    print('name:',name,'age:',age,'other:',kwargs)

5.局部变量和全局变量
函数内定义的局部变量不能在外部使用;
外部定义的全局变量可以在函数内部使用,
但是函数内部不能对全局变量进行修改.

在函数内修改全局变量需要用global

>>> def myfun():
		global count
		count = 10
		print(10)
>>> count = 5
>>> myfun()
10
>>> print(count)
10

6.内嵌函数

>>> def fun1():
		print('fun1()正在被调用...')
	def fun2():#注意:函数内定义的函数只能在函数内部使用
		print('fun2()正在被调用...')
		fun2()
>>> fun1()
fun1()正在被调用...
fun2()正在被调用...

7.闭包

>>> def funx(x):
		def funy(y):
			return x * y
		return funy#注意这里不能加括号
>>> funx(2)(5)
10
>>> i = funx(2)#另一种方法
>>> i(5)
10

8.lambda表达式

>>> lambda x : 2 * x + 1
<function <lambda> at 0x000001E2EEA1AAF0>
>>> g = lambda x : 2 * x + 1
>>> g(5)
11

9.常用BIF
filter
此处操作失误导致笔记丢失,待未来补全

#利用lambda简化上个程序
>>> list(filter(lambda x: x%2,range(10)))#注意lambda语句本身是不具备带上对象:如range(10)的功能的
[1, 3, 5, 7, 9]

map

>>> list(map(lambda x : x * 2, range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
#主要目的是让lambda定义的函数后能加上范围,方便计算

10.递归

#写一个求阶乘的函数
#自己琢磨的
>>> def jiecheng (x):
	y=x
	while y!=1:
		y=y-1
		x=x*y
		return x
#网课思路
>>>def test(n):
	result=n
	for x in range(1,n):
		result *= x
	return result
#递归思路
def test1(n):
	if n == 1:#递归要有一个正确的返回条件
		return 1
	else:
		return n*test1(n-1)#递归要有调用自身函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值