python学习 day08 (3月13日)----函数
函数
一。定义 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日)----函数的更多相关文章
- Python学习日志9月13日
昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...
- python学习 day09 (3月14日)----函数
一.函数的进阶 1.1 动态参数 1.2* ** 1.3*args , **kwargs 1.4 函数的注释 1.5名称空间 1.6函数的嵌套全局变量 : 贴边写的局部变量 : 不是贴边写的. ''' ...
- Python学习日志9月17日 一周总结
周一,9月11日 这天写的是过去一周的周总结,我从中找出当天的内容. 这天早晨给电脑折腾装机,早晨基本上没有学习,休息了一个早晨. 下午写的上周总结,完事做mooc爬虫课的作业,<Think P ...
- Python 学习日志9月20日
9月20日 周三 多大年龄了,还活得像个小孩.——急什么,人生又不长. 你习惯了思考宇宙星辰,一百年真的不长,一生也就不那么长,许多人的价值观念你也就无法理解.同样,许多人也无法理解你的价值观念,感兴 ...
- Python 学习日志9月19日
9月19日 周二 今天是普通的一天,昨天也是普通的一天,刚才我差点忘记写日志,突然想起来有个事情没做,回来写. 今天早晨学习<Head First HTML and CSS>第十一章节“布 ...
- Python 学习日志9月21日
9月21日 周四 今天是个特殊的日子吗,总感觉9月21这个日子听着怪怪的. 今天早晨看<Head First HTML and CSS>第13章节“表格和更多列表”,内容不多,看完并做了详 ...
- python学习 day11 (3月16日)----(生成器内置函数)
1生成器 1生成器的本质 一定是迭代器(反之不一定(用send(生成器特有方法)验证))2生成器是可以让程序员自己定义的一个迭代器3生成器的好处,节省内存空间4生成器的特性,一次性的,惰性机制,从上往 ...
- python学习 day12 (3月18日)----(装饰器内置函数)
读时间函数: # import time # def func(): # start_time = time.time() # 代码运行之前的时间 # print('这是一个func函数') # ti ...
- Python学习日志9月16日
刚才我差点睡着了,差资料的时候太费神,有些累. 今天早晨学习了<head first HTML and CSS>,今天把昨天没看了的关于字体和颜色的一章节看完了,真长.我详细的做了笔记,并 ...
随机推荐
- 测试--错误java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=select], {ExactMatcher:fDisplayName=select(com.rjj.demo.DemoApplicationTests)]...
异常这个错误java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=select], {ExactMatche ...
- PAT1021(dfs 连通分量)
A graph which is connected and acyclic can be considered a tree. The height of the tree depends on t ...
- Unity 场景分页插件 World Streamer 支持无限大地图的解决方案(二)
Terrain Streaming 可以用WorldCreator创建Tile地形,然后用WorldStreamer实现分块地图.比如10000*10000(16平方公里) 的地形,需要1000*10 ...
- OSPF网络类型不一致路由无法计算的问题
晚上割接,远端的ASR9001-s网络类型为广播类型,本端为6509-e,网络接口类型修改成p2p后,OSPF邻居关系建立,但是路由无法计算.
- [剑指Offer]54-二叉搜索树的第k个节点
题目描述 给定一棵二叉搜索树,找出其中的第k小的结点,返回指向该节点的指针. 思路 中序遍历即可. 注意特判!报段错误数组越界这里就要考虑是少特判的问题. 法一:借助vector 法二(better) ...
- 好文:javascript中的四种循环
https://juejin.im/entry/5a1654e951882554b8373622?utm_medium=hao.caibaojian.com&utm_source=hao.ca ...
- pom.xml中坐标的组成
坐标=组织(也就是所谓的公司名称)+项目名称+版本(如果不加范围默认为compile)
- MVC防止跨站攻击@Html.AntiForgeryToken()
ASP.NET MVC 中有个标签:@Html.AntiForgeryToken(),需要在页面中加入这个标签,然后在Actoin中加入特性[ValidateAntiForgeryToken]就可以了 ...
- css背景图充满屏幕
代码: body { /* 加载背景图 */ background: url(resource/inv_bg.png); /* 背景图不平铺 */background-repeat: no-repea ...
- [z]protobuf实现c++与java之间的数据传递,beancopy数据到前台
[z]http://blog.csdn.net/xhyzdai/article/details/46684335 定义proto文件 option java_package = "com.w ...