########################定义一个函数############################ #def 函数名(形参列表): # 函数体 # retunrn 返回值 ######向函数中传递参数是时有位置参数和关键字参数两种方式####### ######两种方式可以混用,但位置参数必须在关键字参数前面,并且一一对应####### ######在定义函数是时,可以通过对形参赋值实现对参数指定默认值####### ######参数组/非固定长度参数,*args可向函数中传递一个列表,**agrs可向函数传递一个字典 # def v_family(*args): # print(args) # # v_family(*['miku','ran']) # v_family(['miku','ran']) # # ('miku', 'ran') # # (['miku', 'ran'],) ################################全局变量与局部变量####################### #全局变量:在主程序中定义的变量 #局部变量:在子程序中定义的变量 #局部变量与全局变量同名时,在子程序中,局部变量起作用 #在子程序中,可以使用global关键字调用并修改全局变量值 #在编程中,全局变量通常采用大写,局部变量通常小写,易与区分 # NAME='miku' # print(NAME) # def print_name(): # name='rin' # global NAME # NAME='MIKU' # print(name,NAME) # # # print_name() # print(NAME) # # # miku # # rin MIKU # # MIKU # #当定义的函数有多层的时候,还可以采用ninlocal关键字调用上一级函数的变量 # def print_name(): # name='miku' # def change_name(): # nonlocal name # name='MIKU' # change_name() # print(name) # # print_name() #############################函数的前向引用####################### # #函数的前向引用:函数及即"变量",先定义在引用. # def print_name(name): # print(name) # name=change_name(name) # print(name) # def change_name(name): # return name.upper() # print_name('miku') # ###正常调用 # def change_name(name): # return name.upper() # def print_name(name): # print(name) # name=change_name(name) # print(name) # # print_name('miku') ######正常调用 def print_name(name): print(name) name=change_name(name) print(name) print_name('miku') def change_name(name): return name.upper() ####运行错误,change_name()未定义,