my_num = 200 #全局变量
def my_func():
my_num = 10 #局部变量 函数内部有同名的局部变量,优先采用局部变量
print(my_num)
def my_func1():
global num #局部变量转换为全局变量 也可修改全局变量
num = 20
a = 10
pi = 3.14
flag = True
my_str = "hello"
a, pi, flag, my_str = 10, 3.14, True, "hello" #批量定义变量
拆包
my_list = ["xiaoming","xiaohong"]
my_name1,my_name2 = mylist #拆包
def my_func(name,age):
return "姓名:"+ name, "年龄:"str(age)
my_name,my_age = my_func("杰森",18) #对返回值拆包
交换
第三种最为简便
小整数缓存池:在实际编程中,数值比较小的整数,比如1,2,29等,可能会非常频繁的出现。而在python中,所有的对象都存在与系统堆上。想想?如果某个小整数出现的次数非常多,那么python将会出现大量的malloc/free操作,这样大大降低了运行效率,而且会造成大量的内存碎片,严重影响Python的整体性能。
在python2.5乃至3.3中,将小整数位于[-5,257)之间的数,缓存在小整型对象池中。
a = 10
b = a
print(id(a))
print(id(b)) #打印内存编号,内存编号a与b一致
#可变的数据类型 内存编号不会改变
递归函数
如果一个函数在内部不调用其他的函数,而是自己本身的话,这个就是递归函数。
#5*4*3*2*1
def my_func(num):
ret = 1
while num > 0:
ret *= num
num -= 1
print(ret)
my_func(5)
#递归函数
def my_fuc(num):
if num > 1:
return num * my_func(num - 1)
else:
return 1