提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Python 中,圆括号意味着调用函数。在没有圆括号的情况下,Python 会把函数当做普通对象。
a = 100 #全局变量
def f1():
global a #如果要在函数内改变全局变量的值,增加global 关键字声明
print(a) #打印全局变量a 的值
a = 300
f1()
print(a)
执行结果:
100
300
Python 中参数的传递都是“引用传递”,不是“值传递”。分为两类:
copy.copy(浅拷贝)、copy.deepcopy(深拷贝)
传递不可变对象时,不可变对象里面包含的子对象是可变的,则方法内修改了这个可变对象,源对象也发生了变化。
a = (10,20,[5,6])
print("a:",id(a))
def test01(m):
print("m:",id(m))
m[2][0] = 888
print(m)
print("m:",id(m))
test01(a)
print(a)
运行结果:
a: 41611632
m: 41611632
(10, 20, [888, 6])
m: 41611632
(10, 20, [888, 6])
lambda 表达式的基本语法:lambda arg1,arg2,arg3... : <表达式>
代码(示例):
g = [lambda a:a*2,lambda b:b*3,lambda c:c*4]
print(g[0](6),g[1](7),g[2](8))
执行结果:12 21 32
功能:将字符串str 当成有效的表达式来求值并返回计算结果。
语法:eval(source[, globals[, locals]]) -> value
参数:
source:一个Python 表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意映射对象
每个递归函数必须包含两个部分:
代码(示例):
#使用递归函数计算阶乘(factorial)
def factorial(n):
if n==1:return 1
return n*factorial(n-1)
for i in range(1,6):
print(i,'!=',factorial(i))