博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习 day08 (3月13日)----函数
阅读量:5023 次
发布时间:2019-06-12

本文共 2827 字,大约阅读时间需要 9 分钟。

函数

一。定义  def  关键字  函数名():

      函数体

函数 ---- 封装#def 关键字# #定义后的函数就像变量  不调用是不执行的# #函数名() ==函数的调用def code():    print('code a new!')code() # 局部变量
函数的调用:   函数名+()调用函数的时候不在缩进内,必须顶行写 def hanshu():   hanshu... hanshu()或者 if True:   hanshu()

二。执行

#函数的执行过程def make(): #第一步 之后没了    print(1)make # 内存空间  当➕ ()时执行print(make)make()print(make())# 打印函数为空#定义——调用——函数体的代码

 

三。函数的返回值

#return 的作用:#1.没有时  返回 None  return 没值时, 返回 None#2.return 有值时,返回#3.传一个内容 则本身 传多个是 一个元组#4.下面的内容不执行#5.执行到此  函数结束
def back():    print('f')    return 'a','b'    #  下面代码不执行, break 且结束了这个函数    print('能打印吗?')    return 1ret = back()  # return  多个 只有第一个print(ret) #('a', 'b')  多个的话为元组  返回值 不写内容返回None 不写return 也是None
1.没有返回值      写了return 没有返回值 都默认返回None 2,一个返回值,返回本身 多个返回值,返回的是一个元组 3,return 下面的代码不执行,并且结束这个函数(if缩进里面不这样,同上)
# 返回值def make():    print('1')    return '它'*2    return 2*45print(id(ret),id(make()))#地址一样  就是同样的print(ret)

    是赋值?

ret =  make()  因为他俩一样print(ret) = print(make())make()  函数执行ret  函数执行  一样的

 四。函数的参数  形参和实参

 
#函数怎么样,必须保证参数都有值 无论是默认值,还是赋值的参数
形参,函数定义的时候         位置参数 a,b 传参的时候一一对应         默认参数  a =1     在定义的时候已经定义好了实参,函数调用的时候         位置参数 1,2 传参的时候一一对应给形参         关键字参数a = 1 通过形参的名字指定传值    混合:        形参def func(a,b,c,f=1)        实参func(1,2,3,f=2)传参,将实参返回形参的过程              #位置参数 >  关键字

 补充内容 以后会用到    三元运算符 

不确定赋值的内容时, 使用!a if a>b else b
五。出错总结:
#不对  多元素 没赋值TypeError: make() missing 1 required positional argument: 'c'

 #练习

#函数名+()  不管在什么位置都是在执行函数# print() 到后一个括号才算执行吗?def make():    print(1)    print(2)    print(3)print(make(),make()) # == make() make() print(make(),make())def make(char,addr,alpa):  #形参 形式上的参数 char =??    print(f'{char}')    print(char)    print(addr)    print('%s'%char)make('word',[],'aaa')  # 实参  形给了实   #错误 半个黄括号 有的变量没给#判断那个数大的程序:def da(a, b):    if a>b:        pass    else:        a= b    return aprint(da(10,9))def da(a, b):    if a>b:       return a    else:        return bprint(da(1,1))#   返回  条件成立的结果 不成立的结果    c =  a if a>b      else b#倒序程序li = [1,2,3,65]la = []def reverses(a):    for i in range(len(a)-1,-1,-1):        la.append(li[i])    return laprint(reverses(li))li = [1,2,2,5,3,65]def func(a):    print(a[::-1])func(li)#对# def make(a,b,d, c=1):#不对# def make(a, b, c=1,d):#SyntaxErr #不对  多元素 没赋值TypeError: make() missing 1 required positional argument: 'c' #循环输入函数  程序 def fuzhi(name,age,sex ='男' ):    print(name,age,sex)while 1:    life_list = input('name,age,sex').split(',')    if len(life_list)>2:        a,b,c= life_list        fuzhi(a,b,c)    else:        a,b = life_list        fuzhi(a,b)        #函数怎么样,必须保证参数都有值 无论是默认值,还是赋值的参数 def fun(a,b,c,d=1):   #位置+形参 (位置+默认)混合形参    print(a,b,c,d)fun(1,2,3)  #位置参数fun(1,3,4,d=4)   #实参 (位置+关键字)  混合实参  替换了# fun(d=4, 1, 3, 4) #不对   #位置参数 >  关键字# open('liu','w','utf-8')# 不对  因为‘utf-8’是 第四个open('liu','w',encoding='utf-8')#所以

 

 

转载于:https://www.cnblogs.com/Doner/p/10522244.html

你可能感兴趣的文章
[SCOI2016]幸运数字
查看>>
SpringBoot 集成ehcache
查看>>
初步swift语言学习笔记2(可选类型?和隐式可选类型!)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
查看>>
在Macos下完美解决Adobe Dreamweaver CC 2018 汉化及操作方法
查看>>
【转】 Newtonsoft.Json高级用法
查看>>
CodeBlocks X64 SVN 编译版
查看>>
Excel催化剂开源第42波-与金融大数据TuShare对接实现零门槛零代码获取数据
查看>>
bug记录_signalr执行$.connnection.testhub结果为空
查看>>
【转】常用的latex宏包
查看>>
[TMS320C674x] 一、GPIO认识
查看>>
酷狗的皮肤文件存放在哪
查看>>
iOS RunLoop简介
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
MapKeyboard 键盘按键映射 机械革命S1 Pro-02
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
判断CPU大小端示例代码
查看>>