python 新手函数基础(函数定义调用值传递等),,1、编程的集中主要方


1、编程的集中主要方式:

  面向过程 》类 》》关键字class      面向函数》函数 》》 关键字def   面向过程》 过程 》》 关键字def 

2、python 函数是逻辑和结构化的集合。函数的定义和调用:

# Author : xiajinqi# 函数def  _print() :    print("hello world")    return 0#函数调用x= _print()# 函数返回结果print(x)def  _print() :    print("hello world1")    return 0#过程 本质就是没有返回结果的函数def  _print() :    print("hello world2")#函数调用x= _print()# 函数返回结果print(x)E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/function.pyhello world0hello world2NoneProcess finished with exit code 0


3、函数的相互调用,以及使用函数的有点,减少重复代码,扩展性强。是逻辑更加清晰合理。

# Author : xiajinqi# 函数import sys,timedef logger():    time_format =‘%Y-%m-%d‘    time_current = time.strftime(time_format)    with open("test100.txt","a+",encoding="utf-8")  as f :        f.write("log end %s \n" %time_current)    return 0def test2() :    logger()    print("第一次写入")    return 0def test1() :    logger()    print("第二次写入")    return 0def test3() :    logger()    print("第三次写入")    return 0def test4() :    logger()    print("第四次写入")    return 0test1()test2()test3()test4()


4、函数的值传递 。返回值。return后面的代码不执行。并且return可以返回任意值。元组,数组等任意多个值,返回多个值时候是一个元组

# 函数值传递,简单传递def _print_name(x):    print("你的名字是 %s" %x)    return 0_print_name("xiajinqi")# Author : xiajinqi# 函数值传递,定义返回值def _print_name(x):    print("你的名字是 %s" %x)    return x,[‘test1‘,‘test2‘,‘text3‘],‘test‘    print("return 后面的语句不执行")_print_name("xiajinqi")print(_print_name(‘xiajinqi‘))

E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/function.py 你的名字是 xiajinqi 你的名字是 xiajinqi (‘xiajinqi‘, [‘test1‘, ‘test2‘, ‘text3‘], ‘test‘)

Process finished with exit code 0

5.函数值传递的几种方式。值传递、

# Author : xiajinqi# 函数值传递,定义返回值def _print_name(x,y):   print(x,y)def _print_name1(x,y,z):   print(x,y,z)x = 100y = 200_print_name(100,y=300)  # 位置参数和关键字参数_print_name1(100,200,z=100) #_print_name1(100,z=100,200) #报错,关键字参数不能再位置参数前面

6、不定参数的使用

# Author : xiajinqi# 函数值传递,定义返回值def _print_name(x,y):   print(x,y)def _print_name1(x,y,z):   print(x,y,z)#默认参数 _print_name2(x,y=11,z)报错,位置参数不能再形式参数前面def _print_name2(x,y=11,z=222):   print(x,y,z)# 不定参数def _print_name4(x,*args):    print(x)    print(args)    print(args[1])#    传一个字典,把关键字转化为字典def _print_name5(**kwargs):    print(kwargs)x = 100y = 200test= [‘test1‘,‘test2‘,‘test3‘]test1 = {‘name‘:‘xiajinqi‘,‘age‘:‘222‘}_print_name(100,y=300)  # 位置参数和形式参数_print_name1(100,200,z=100) ##_print_name1(100,z=100,200) #报错,位置参数不能在形式参数前面_print_name2(100,2222,1000)_print_name4(100,*["100","200",‘300‘])_print_name4(*test)_print_name5(**test1) _print_name5(**{‘name‘:‘xiajinqi‘})


7、全局变量和局部变量:

# 字符串,整形等不能在局部变量中修改,列表、字典等可以在局部变量可以直接修改,如果不想改变,可以设置为元组name = "xiajinqi"age =88  #全局变量name1 = [‘test‘,‘xiajinqi‘,‘wangwu‘]def change_name():    age =100  #作用范围为函数范围内,只改变对全局变量没有影响    global name  #申明为全局变量    name = "test"    return 0def change_name2():    name1[0] = ‘test2‘    return 0change_name()print(age)change_name2()print(name1)E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/function.py88[‘test2‘, ‘xiajinqi‘, ‘wangwu‘]Process finished with exit code 0

python 新手函数基础(函数定义调用值传递等)

评论关闭