python小白成长日记 day 5 函数 局部变量 递归 高阶函数
2018-05-07 14:35
423 查看
def name1():#def定义函数 name 是函数名字 '''文件注释'''# 注意这一步是一个好习惯 一般都要写上 print('in the name1') return 0 def name2(): print('in the name2') #如果不加return 打印的结果是none x=name1() y=name2() print('from name1 return is %s'%x) print('from name2 return is %s'%y)
import time#导入模块 def logger():#记录器 定义一个logger 是下面的with可以多次使用 #当有多个数据的时候 更方便使用 time_format='%Y-%m-%d %X'#time_forma定义你的时间格式 Y年m月d日 X小时分钟秒 time_current=time.strftime(time_format )#current 当时的 with open('a.txt','a+')as a: a.write('%s end action 哈哈 \n'%time_current ) def test1(): print('test1 starting action...') logger() def test2(): print('text2 starting action...') logger() def test3(): print('text3 starting action...') logger() test1() test2() test3()logger 代码的重复利用
def name1(): print('in the name1') def name2(): print('in the name2') return 0 def name3(): print('in the name3') return 1,'han',['bin','long'],{1:2} x=name1() y=name2() z=name3() print(x) print(y) print(z)#最后会返回一个综合的元组
def name1(x,y): print(x) print(y) name1(1,3) #如果()中不写会报错 少了参数 #def中的()的数量要与最后name1中的()中的数相对应 def name2(x,y): print(x) print(y) x=1 y=2 name2(y=2,x=1)#与形参位置无关 # 注意()可以这样写(3,y=2)但是不能写(y=2,3)不管有几个量 y=?要放到最后
def name(x,y=2): print(x) print(y) name(1) #默认参数特点:调用函数的时候,默认参数非必须传递 #用途:1.默认安装2.连接数据库
#*args:接受N个位置参数,转换成元组形式
如果实参有很多个 形参不方便定义可以用* 比如*args 关键是以*开头 # def test(*args): # print(args) # test(1,2,3,4,5,5) # test(*[1,2,4,5,5]) # test(1,1,1,1,1,1)# args=tuple([1,2,3,4,5]) # def test1(x,*args): # print(x) # print(args) # # test1(1,2,3,4,5,6,7) #**kwargs:接受N个关键字参数,转换成字典的方式 # def test2(**kwargs): # print(kwargs) # print(kwargs['name']) # print(kwargs['age']) # print(kwargs['sex']) # test2(name='alex',age=8,sex='F') # test2(**{'name':'alex','age':8,'sex':'F'}) # def test3(name,**kwargs):#字典用** # print(name) # print(kwargs) # test3('alex',age=18,sex='m') # def test4(name,age=18,**kwargs): # print(name) # print(age) # print(kwargs) # test4('alex',age=34,sex='m',hobby='tesla') def test4(name,age=18,*args,**kwargs): print(name) print(age) print(args) print(kwargs) logger("TEST4") def logger(source): print("from %s" % source) test4('alex',age=34,sex='m',hobby='tesla')
#局部变量 只改变局部的值 def change_name(name): global school #globe局部变量 school = "Mage Linux" print("before change",name,school) name ="Alex li" #这个函数就是这个变量的作用域 age =23 print("after change",name) name=('hanbinlong') change_name(name) print(name)
def calc(n): print(n) if int(n/2) >0: return calc( int(n/2) ) print("->",n) calc(10)
递归特性:
1 必须有一个明确的结束条件
2每次进入一个更深的递归中 问题模式的数量要有一定的减少
def add(a,b,f): return f(a)+f(b) res = add(3,-6,abs) print(res)相关文章推荐
- python 函数进阶:参数传递,高阶函数,lambda 匿名函数,global 变量,递归
- python基础:函数;递归;全局变量局部变量等顺序;匿名函数
- Python3学习笔记4-函数,全局变量&局部变量,内置函数
- python 函数动态传参,名称空间,嵌套 局部全局变量
- python Day13之局部,全局变量和递归函数
- 【Python】PYTHON 函数局部变量和全局变量
- Python学习笔记 V —— 函数、函数的不定长参数、全局变量与局部变量、递归函数
- 【ZZ已解决】Python中如何在嵌套函数内部访问被嵌套(的父级函数)中的(局部,非全局)变量
- 018--python 函数参数、变量、前向引用、递归
- python 小白成长周记三 内置函数,装饰器 之(函数即变量,高阶函数,嵌套函数,) 生成器,迭代器
- 函数(参数传递)、普通/static局部/全局变量、递归
- python函数局部变量
- python全栈开发-Day12 三元表达式、函数递归、匿名函数
- python基础六:函数的几种类型与局部变量和全局变量、申明修改全局变量global与修改嵌套函数变量的nonlocal
- 【python】*函数:全局局部变量、内部函数、闭包
- 5.1 Python 函数-默认参数,*args,**kwargs的使用;作用域-局部空间使用全局变量需要注意的事项等
- Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
- python 函数的参数、(匿名、zip、偏、回调、返回、递归)函数、修饰器、变量的作用域的操作说明
- Python 基础之返回值与函数使用与局部变量和全局变量locals() 和 globals()
- python函数局部变量用法实例分析