python GC、分支、循环

内存管理

1、变量无须事先声明,也不需要指定类型

2、python编程中一般无须关心变量的存亡,一般也不用关心内存的管理

3、python使用引用计数记录所有对象的引用计数

  • 当对象引用数变为0,他就可以被垃圾回收GC
  • 计数增加:赋值给其它变量就增加引用计数,例如:x=3;y=x
  • 计数减少:
  1. 函数运行结束时,局部变量就会被自动销毁,对象引用计数减少
  2. 变量被赋值给其它对象。例如: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所在循环。
原文地址:https://www.cnblogs.com/xzkzzz/p/10791822.html