内存管理
- 变量必须事先声明,也不需要指定类型,这是动态语言的特性(解决内存空间和内存碎片问题)
- Python编程中一般无需关心变量的存亡,一般也不用关心内存的管理
- Python使用计数记录所有对象的引用数
- 当对象引用数变为0,它就可以被垃圾回收GC(garbage collection)(具有发现对象并循环引用机制)
- 计数增加:
赋值给其他变量就增加引用计数,例如 x = 3;y = x ;x = [ x , 1]
实参传参
- 计数减少:
函数运行结束时,局部变量就会被自动销毁,对象引用计数减少
变量被赋值给其他对象,例如 x = 3 ; y = x ; x = 4 - 有关性能的时候,就需要考虑变量的引用问题,但是该释放内存和不释放内存, 看需求
Tips:
C语言,C++必须做内存释放
Python和Java都有垃圾回收机制
程序控制
顺序
按照先后顺序一条条执行
分支
根据不同的情况判断,条件满足执行某条件下的语句
循环
条件满足就执行,不满足就不执行或不再执行
要注意判断循环的条件是什么
单分支结构
if语句
condition 条件
if condition;
代码块
#condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)
if 1 < 2 : # if True
print("l less than 2 ")
代码块
- 类似于if语句的冒号后面就是一个语句块
- 在if、for、 def、class等关键字后面使用代码块
多分支结构
if…elif…else语句
if condition1:
代码块1
elif condition2:
代码块2
elif condition3:
代码块3
……
else:
代码块
例子
negative 负的
positive 正的
a = 5
if a < 0 :
print("negative")
elif a == 0 :
print("zero")
else :
print("positive")
分支嵌套
例子:
score = 80
if score < 0 :
print("wrong")
else : # score >= 0
if score == 0 :
print("egg")
elif score <= 100 : # score > 0
print("right")
else : # score > 100
print("too big")
- 嵌套结构,可以是分支、嵌套的嵌套
- 可以相互嵌套多层
- 多分支结构,只有一个分支被执行,其他分支都不会被执行
- 前一个条件被测试过,下一个条件相当于隐含着这个条件
真值表
False等价布尔值,相当于bool(value)
- 空容器
- 空集合set
- 空字典dict
- 空列表list
- 空元组tuple
- 空字符串
- None对象
- 0
练习
- 输入两个数,输出最大数
a = input(">>")
b = input(">>")
if ( a > b ):
print(a)
else :
print(b)
- 给定一个不超过5位的正整数,判断其有几位
fold 折叠
val = input(">>")
val = int(val)
if val > 1000: #fold 可以提高程序运行效率
if val >= 10000:
print (5)
else :
print(4)
else :
if val >= 100 :
print(3)
elif val >= 10 :
print (2)
else :
print(1)