python入门之函数

xiaoxiao2021-03-01  17

""" ------------------------定义函数,定义过程,调用----------------------- #1.定义函数 def func1 (): "test" print('in the func1') return 0 #2.定义过程 def func2(): "test" print('in the func2') #3.调用 x = func1() y = func2() print("from func1 return is %s" %x) print("from func1 return is %s" %y) """ """ ------------------------------为什么使用函数例子----------------------- #4.为什么使用函数:例1 #减少重复代码 #保持程序一致性 #使程序变得容易扩展 import time def logger(): time_format = '%Y-%m-%d %X' time_current = time.strftime(time_format) with open('a.txt','a',encoding='utf-8') as f: f.write("%s why use the function........ \n" %time_current) def test1(): print("test1 starting actioon.....") logger() def test2(): print("test2 starting action......") logger() def test3(): print("test3 starting action......") logger() test1() test2() test3() """ ''' ---------------------------------------函数的返回值----------------------- #5.函数的返回值 #为什么要有返回值? 因为要函数执行的结果 def test1(): print('in the test1')#返回值0 def test2(): print('in the test2') return 0 # 返回1个值 def test3(): print('in the test3') return 1,'hello',['sun','weiqi'],{'name':'sun'}#返回大于1个值 x = test1() y = test2() z = test3() print(x) print(y) print(z) #总结: #返回值=0 返回null #返回值=1:返回object #返回值>1:返回tuple ''' """ ------------------------------------函数的参数-------------------------- #6.函数的参数 def test(x,y):#位置参数和关键字 print(x,y) test(y=1,x=4)#与形参顺序无关 test(1,2)#与形参一一对应 test(3,y=2) def test2(x,y=2):#默认参数 特点:调用函数的时候默认参数非必须传递 print(x,y) test2(3) def test3(*args):#参数组* 表示参数个数不固定 print(args) test3(1,2,34,4,{'name':'sun'}) test3(*[1,2,3,6,7]) def test4(x,*args): print(x) print(args) test4(1,2,3,5,6,8,'sun') def test5(name,**kwargs):#**kwargs 功能是把n个关键字参数,转换成字典的方式 print(name) print(kwargs) test5("li",age=10,set='M',sex='M') """ #6.局部变量和全局变量 ''' def test(name,age=18,*args,**kwargs): print(name,age,args,kwargs) logger("test") def logger(source): print("from %s" %source) test('sun',age=22,y=2,sex='M',hobby='eat') ''' ''' school = 'mysql'#全局变量(在第一级定义的都叫全局变量) def change_name(name): global school #修改全局变量 school = 'mysql2' school = 'Python' print("before change....",name,school) name = 'ZHU'#局部变量,只在函数里面生效,这个函数就是这个变量的作用域 print("after change....",name,school) name = 'sun' change_name(name) print(name,school) ------------------------- 这种方法在生产上面不能用 def change_name(): global name name = 'sun' change_name() print(name) ------------------------------ school = 'mysql' names = ["sun","zhang","zhu"] def change_name(): names[0] = "sunsun" print(names) change_name() print(names) ''' """ #递归函数 def calc(n): print(n) if int(n/2) >0: return calc(int(n/2)) print("-->",n) calc(10) #递归特性:必须有一个明确的结束条件 #每次进入更深一层递归时,问题规模相比上次递归应该有所减少 #递归效率不高,递归层次过多会导致栈溢出 #函数与函数式编程不同 #高阶函数 #变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数 def add(a,b,f): return f(a)+f(b) res = add(3,-6,abs) print(res) """ #程序练习: #1.实现简单的shell sed替换功能 #2.修改haproxy配置文件
转载请注明原文地址: https://www.6miu.com/read-3200242.html

最新回复(0)