首页 > 代码库 > 函数基础1
函数基础1
定义函数:
解决的问题: 代码冗余,修改困难
可读性差,扩展性差
1内置函数 :print() sum() max()
2自定义函数:def 函数名(arg1,arg2,arg3):
‘描述信息‘
函数体
return 1#任意数据类型
*********************先定义,后使用**************
1无参函数 不依赖外部参数 的简单打印语句的函数
不需要返回值
print(foo.__doc__) 显示函数描述信息
2有参函数 依赖外部参数 经过一系列计算 通常需要有返回值
3空函数 作用:框架立见
函数的调用:
空函数:语句形式 foo()
有参函数:表达式形式 res = foo(1,2) #函数运行结束后返回值看不到,必须将函数的返回值赋给一个变量,再打印出来
*****************函数的返回值可以是任意类型****************
不写return 返回None
return 多个数据类型 返回元组形式
return 1 返回1
字符串解压###########a,b,c,d,e = ‘hello‘ a,_,_,_,e = [1,2,3,4,5] a,*_ = ‘bhjdsklfhdskflhsjkfhjk‘
元组 字典:(key) 集合 都可以解压
弱类型 :不用事先定义参数和参数类型,但是使用参数时类型错误会报错
参数:形参 在函数定义阶段,括号内定义的参数
实参 在函数调用阶段,括号内定义的参数 不要调用外部的环境变量 可变的数据类型
*args 按位置传值时,多出来的实参保存在* 以元组的形式赋给args
**kwargs 按关键字赋值时,把多余的值保存在** 以字典的形式赋给kwargs
在实参的角度:
规则:按位置传值必须在按关键字传值的前面
对一个形参只能赋值一次
1.按照位置传值
2.按照关键字传值
3.混着用
在形参的角度:
规则:默认参数必须放到位置参数的后面
1.位置参数
2.默认参数
3.*args (接收位置传值)
4.**kwargs(接收关键字传值)
列:
def my_max(x,y):
‘求最大值‘
res = x if x>y else y
res1 = my_max(3,5)
print(res1) # 打印函数的运行结果,即return 的值
print(my_max(5,8))
a =open(‘函数笔记‘,encoding = ‘utf8‘)
head,*_,tail = a # 将文件内容解压,取首尾值,*_ 代表中间多个字符串
print(head,tail)
#空函数
def foo():
pass
#利用函数改变外部全局变量的值 尽量不要那么做 ,不推荐
x = []
def register(name,name_list=x):
name_list.append(name)
res=register(‘ASB‘)
print(res) # 打印函数的返回值None
print(x)
register(‘fff‘)
print(x)
#实参和形参的练习
def foo(x,*args,y=1,**kwargs):
print(x)
print(y)
print(args)
print(kwargs)
foo(1,2)
foo(x=1,y=2)
foo(y=2,x=2)
foo(1,y=2)
foo(1,2,3,4,y=9,a=2,b=4,c=8)
默认参数
x = ‘male‘
def register(sex = x):
print(sex)
register()
def bar(x,y,z):
print(x)
print(y)
print(z)
bar(*(1,2,3)) #将元组打散分别用来赋值
def auth(name,passwd,sex=‘male‘):
print(name)
print(passwd)
print(sex)
def foo(*args,**kwargs): #args=(‘egon‘,123,‘famale‘) kwargs={}
print(‘from foo‘)
auth(*args,**kwargs) #*(‘egon‘,123) **{}
foo(‘egon‘,123,‘famale‘)
foo(name=‘egon‘,passwd=123)
函数基础1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。