函数

一。定义  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 1
ret = back() # return 多个 只有第一个
print(ret) #('a', 'b') 多个的话为元组 返回值 不写内容返回None 不写return 也是None
1.没有返回值      写了return 没有返回值
都默认返回None
2,一个返回值,返回本身
多个返回值,返回的是一个元组
3,return 下面的代码不执行,并且结束这个函数(if缩进里面不这样,同上)
# 返回值
def make():
print('')
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 a
print(da(10,9)) def da(a, b):
if a>b:
return a
else:
return b
print(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 la
print(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')#所以
												

python学习 day08 (3月13日)----函数的更多相关文章

  1. Python学习日志9月13日

    昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...

  2. python学习 day09 (3月14日)----函数

    一.函数的进阶 1.1 动态参数 1.2* ** 1.3*args , **kwargs 1.4 函数的注释 1.5名称空间 1.6函数的嵌套全局变量 : 贴边写的局部变量 : 不是贴边写的. ''' ...

  3. Python学习日志9月17日 一周总结

    周一,9月11日 这天写的是过去一周的周总结,我从中找出当天的内容. 这天早晨给电脑折腾装机,早晨基本上没有学习,休息了一个早晨. 下午写的上周总结,完事做mooc爬虫课的作业,<Think P ...

  4. Python 学习日志9月20日

    9月20日 周三 多大年龄了,还活得像个小孩.——急什么,人生又不长. 你习惯了思考宇宙星辰,一百年真的不长,一生也就不那么长,许多人的价值观念你也就无法理解.同样,许多人也无法理解你的价值观念,感兴 ...

  5. Python 学习日志9月19日

    9月19日 周二 今天是普通的一天,昨天也是普通的一天,刚才我差点忘记写日志,突然想起来有个事情没做,回来写. 今天早晨学习<Head First HTML and CSS>第十一章节“布 ...

  6. Python 学习日志9月21日

    9月21日 周四 今天是个特殊的日子吗,总感觉9月21这个日子听着怪怪的. 今天早晨看<Head First HTML and CSS>第13章节“表格和更多列表”,内容不多,看完并做了详 ...

  7. python学习 day11 (3月16日)----(生成器内置函数)

    1生成器 1生成器的本质 一定是迭代器(反之不一定(用send(生成器特有方法)验证))2生成器是可以让程序员自己定义的一个迭代器3生成器的好处,节省内存空间4生成器的特性,一次性的,惰性机制,从上往 ...

  8. python学习 day12 (3月18日)----(装饰器内置函数)

    读时间函数: # import time # def func(): # start_time = time.time() # 代码运行之前的时间 # print('这是一个func函数') # ti ...

  9. Python学习日志9月16日

    刚才我差点睡着了,差资料的时候太费神,有些累. 今天早晨学习了<head first HTML and CSS>,今天把昨天没看了的关于字体和颜色的一章节看完了,真长.我详细的做了笔记,并 ...

随机推荐

  1. jenkins权限控制

    一.插件安装 插件:Role-based Authorization Strategy版本:2.3.2 二.全局安全配置 进入Jenkins后点击系统管理进入全局安全配置 当插件安装好的时候,授权策略 ...

  2. 2019年华南理工大学程序设计竞赛(春季赛)-C-六学家的困惑

    题目链接:https://ac.nowcoder.com/acm/contest/625/C 题意:给定两个字符串,每次只能从两个字符串的两端取字符,求依次取字符后所构成的数字最大为多少. 思路:思路 ...

  3. openstack(Pike 版)集群部署(七)--- Cinder 部署

    一.介绍 参照官网部署:https://docs.openstack.org/cinder/pike/install/index-rdo.html 继续上一博客进行部署:http://www.cnbl ...

  4. navicat连接虚拟机中mysql"Access denied for user'root'@'IP地址'"问题

    登陆要链接的服务器上的mysql 命令:mysql -uroot -p123456 然后执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED ...

  5. SQL Server中row_number的用法

    ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也 ...

  6. 【转】Spring、Spring MVC、MyBatis整合文件配置详解

    见:http://www.tuicool.com/articles/eyINveF web.xml的配置 web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式 ...

  7. unity项目开发必备插件Asset Hunter 2(资源猎人2)

    unity必备插件 Asset Hunter 2 2.4 , 工程项目过大,垃圾太多之后的清洁利器,能识别 ,移除你用不到的资源 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop ...

  8. Unity5权威讲解+项目源码+MP4

    扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  9. 一字一句的搞懂vue-cli之vue webpack template配置

    webpack--神一样的存在.无论写了多少次,再次相见,仍是初见.有的时候开发vue项目,对尤大的vue-cli感激涕零.但是,但是,但是...不是自己的东西,真的很不想折腾.所以,我们就得深入内部 ...

  10. UVa 1103 Ancient Messages(二重深搜)

    In order to understand early civilizations, archaeologists often study texts written in ancient lang ...