内存管理
1、变量无须事先声明,也不需要指定类型
2、python编程中一般无须关心变量的存亡,一般也不用关心内存的管理
3、python使用引用计数记录所有对象的引用计数
- 当对象引用数变为0,他就可以被垃圾回收GC
- 计数增加:赋值给其它变量就增加引用计数,例如:x=3;y=x
- 计数减少:
- 函数运行结束时,局部变量就会被自动销毁,对象引用计数减少
- 变量被赋值给其它对象。例如:x=3;y=x;x=4
有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求。
程序控制
单分支结构
if condition: 代码块 condition必须是一个bool类型,这个地方有一个隐式转换bool(condition) if 1<2: print('1 less than2')
代码块
- 类似于if语句的冒号后面的就是一个语句块
- 在if、for、def、class等关键字后使用代码块
多分支结构
if..elif..else语句 if condition1: 代码块1 elif condition2: 代码块2 elif condition3: 代码块3 .... else: 代码块 举例: a = 5 if a<0: print('negative') elif a ==0: print('zero') else: print('positive')
分支嵌套
举例: score = 80 if score<0: print('wrong') else: if score == 0: print('egg') elif score <= 100: print('right') else: print('too big')
- 嵌套结构,可以是分支、循环的嵌套
- 可以相互嵌套多层
作业:
#输入两个数字 num1 = int(input(">>")) num2 = int(input(">>")) if num1 > num2: print(num1) else: print(num2)
#给定一个不超过5位的正整数,判断是几位数。 num = int(input(">>")) if num >= 1000: if num >= 10000: print(5) else: print(4) else: if num >=100: print(3) elif num >=10: print(2) else: print(1)
循环:
while
语法:
while condition: block 当条件满足既condition为True,进入循环体,执行block 举例: flag=10 while flag: print(flag) flag -=1
for
语法:
for element in iteratable: block 当可迭代对象中有元素可以迭代,进入循环体,执行block 例如:range函数,这就是一个可迭代对象 举例:打印1-10 for i in range(10): print(i+1)
continue
中断当前循环的当次执行,继续下一次循环
举例:计算10以内的偶数(for循环) for i in range(10): if not i%2: print(i)
也可以使用步长
for i in range(0,10,2):
print(i)
使用continue
for i in range(10):
if i%2:
continue
print(i)
倒序打印1-10
for i in range(9,-1,-1): print(i)
break
终止当前循环
举例:计算1000以内的被7整除的前20个数(for循环) count = 0 for i in range(0,7000,7): print(i) count +=1 if count >=20: break
break和continue 总结
- continue和break是循环的控制语句,只影响当前循环,包括while、for循环
- 如果循环嵌套,continue和break也只影响语句所在的那一层循环
- continue和break不是跳出语句块,所以 if cond: break不是跳出if,而是终止if外的break所在循环。