• 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所在循环。
  • 相关阅读:
    C/C++程序内存泄漏检测
    linux下的内存管理
    Linker Script 链接器脚本
    linux内核进程调度以及定时器实现机制
    嵌入式软件设计中查找缺陷的几个技巧
    winCE DEBUGZONE
    程序员三个境界
    EJB初识(通熟易懂)
    JVM/JDK/JRE/IDE—区别(很经典)
    dubbo初识(一)Dubbo架构设计详解
  • 原文地址:https://www.cnblogs.com/xzkzzz/p/10791822.html
Copyright © 2020-2023  润新知