Python函数

  • 字符串,列表,元组是序列,支持切片但是字典不是序列,不支持切片 列表可以修改,元组是不可变得序列
  • 函数就是最基本的一种代码抽象的方式,面对对象的一个封装

1.函数基础:具有独立功能的代码块组织为一个小模块,这就是函数
定义->调用

def 函数名():
	代码块

代码的复用最大化以及最小化冗余代码

2.函数参数:

传参,调用,不定长参数
1.必选参数:形式参数:不占用内存地址
实参是调用函数时的参数
2.默认参数:是在定义参数时直接指定参数的值
默认参数必须放在定义函数最后![

](https://img-blog.csdnimg.cn/fe8a978bf073469293d793a3615104e0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aWL5paX55qE5oao5oao5bCPUw==,size_18,color_FFFFFF,t_70,g_se,x_16)

3.可选参数:当参数的个数不确定时使用,比较灵活 接受的是一个元组类型

def getComputer(*args):
	print(args) #返回的是一个元组
	for item in args:
		result+=item  #累加和
	print(result)

getCompoter(1,2,3,4,5,6)

4.关键字可变参数:
接受的是一个字典类型

#**来定义
#在函数体内,参数关键字是一个字典类型 key是一个字符串
def keyFunc(**kwargs):
	print(kwargs)
dicA = {'name':'Chalie','age':35}
keyFunc(**dicA)
keyFunc(name='peter',age=35)
keyFunc() #传入一个空字典

#组合使用
'''可选参数必须放在关键字可选参数之前'''
def complexFunc(*args,**kwargs):
	print(args)
	print(kwargs)
complexFunc(1,2,3,4,name='Chalie') #元组传入第一个参数,字典传入到第二个参数
complexFunc(age=36)

3函数返回值:return
如果函数返回值有多个,最终会返回一个包含所有返回值的元组
在一个函数内可以有多个return,但是只能返回一个return
如果执行了return,意味着函数就执行完成推出了,return后面的代码语句将不会执行

def returnTuple():
    return 1,2,3   #返回元组
    #return {'name':'chaelie'} #返回字典

a = returnTuple()
print(a[1])

print(returnTuple()) 

4.函数的嵌套使用.

def fun1():
    print("------------")
    
def fun2():
    print('aaa')
    fun1()


fun2()

函数分类:根据函数的返回值和函数的参数
1.有参数无返回值的
2.有参数有返回值的
3.无参数有返回值的
4.无参数无返回值的

#1 不确定n的长度
def sumNumber(*args):
    sum1 = 0
    for i in args:  #args是一个元组
        sum1 = sum1+i
    return sum1

print(sumNumber(8,9,10))

#2
def findOdd(args):
    list1 = []
    count = 1
    for item in args:
       if count%2!=0:
           list1.append(item)
       count += 1
    return list1
print(findOdd([1,2,3,4,5]))

#3
def searchDic(kwarg):
    newdic = {}
    for key,value in kwarg.items():
        if len(value)>2:
            newdic[key] = value[0:2]
        else:
            newdic[key] = value
    return newdic
print(searchDic({'name':'Charlie','age':'20'}))

变量

1.局部变量:
不同的函数 可以定义相同的局部变量,但是各自用各自的,不会产生影响
局部变量的作用:为了临时的保存数据 需要在函数中定义来进行存储
如果在函数内部要想对全局变量进行修改的话,必须用global关键字进行声明

pro='计算机' #全局变量
def printInfo():
	name='peter' #局部变量,在其他方法中不能被调用,只能在函数内部被使用
	print('{}'.format(name))
	pass
def TestMethod():
	
	pass

2全局变量:
作用域是整个程序
当全局变量和局部变量同时出现时,局部变量优先使用
3.参数的可变类型和不可变类型
可变类型:如列表
不可变类型:正常参数
1.万物皆对象,在函数调用的时候,实参传递的就是对象的引用

匿名函数

#不需要名字,使用lambda关键字去创建函数,冒号的后面的表达式有且只有一个
#匿名函数自带return,return的结果就是表达式计算后的结果
lambda:参数1,参数2....:表达式
M = lambda x,y:x+y
M(4,10)

age = 15
print('可以参军' if age > 18 else '继续上学')

rs = (lambda x,y:x if x> y else y)(16,12) #找最大值,可以直接调用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值