第一个程序
局部变量和全局变量-local_global_variable
# encoding: utf-8
'''
@author: ccq
@file: local_global_variable.py
@time: 2019/6/8 19:25
'''
# 局部变量和全局变量
hobby = "python"
name = "ccq"
name_list=["a","b","c"]
def change_name(name):
# 通过global关键字申明,在函数内将局部变量变成全局变量
# 不要这么用
global hobby
name = "CCQ"
print("before change", name, hobby,name_list)
hobby = "PYTHON"
name_list[0]="aaaaaaaaaaa"
print("after change", name, hobby,name_list)
change_name(name)
print(name)
print(hobby)
print(name_list)
#简单来说,函数中的变量都是局部变量,不在函数中的变量则是全局变量。(除了在函数中用global关键字申明外)
#顾名思义,局部变量就是在局部可以使用,即只能在函数中使用的变量,一旦超出函数范围,则该变量不能使用。全局变量就是在整个python文件内都可以使用的变量,在方法体内也可以使用。
#注意,如果该变量是参数(例如上述代码中的name变量),则不能通过global关键字去申明变成全局变量,pycharm会报错。
#但是最好不要使用global,会带来很大问题。
#除了整数和字符串这种简单的类型,他们在函数中修改是不会影响全局变量的。其他的例如列表,字典,集合等复杂数据类型,这些一旦在函数中被修改,全局也会被修改。
(编辑器里有分割线。我之前还傻傻的自己敲。一遍一遍的复制。僵硬。)
第二个程序
递归-recursion
# encoding: utf-8
'''
# @Author : ccq
# @File : recursion.py
# @Time : 2019/6/9 17:46
'''
# 递归
def recursion(n):
print(n)
if n / 2 > 0.2:
return recursion(n / 2)
recursion(10)
#就是一个简单的递归
第三个程序
高阶函数-highlevelfunction
# encoding: utf-8
'''
# @Author : ccq
# @File : highlevelfunction.py
# @Time : 2019/6/9 20:17
'''
# 高阶函数
def function1(z):
return z + 2
def function2(x, y, f):
return f(x) + f(y)
result = function2(2, 3, function1)
print(result)
#就是一个很简陋的高阶函数。但是也花了我不少时间。
#调用高阶函数的时候,只能有一个参数,即function1只能有一个参数。不然会对应不上。
#目前我还没研究出来function1有多个参数的时候,function2要怎么写。
#但是感觉貌似没啥用。