内存管理

一、垃圾回收机制(管理内存)

  1.引用计数

    直接引用(通过栈区在堆区可以直接找到的)

x=10
y=x
print(y)

    间接引用(容器类型)(通过栈区在堆区间接找到的)

x=10
l=[ "NAME","23",x]
print(l[2])

  2.标记清除(循环引用===>>内存泄漏问题)

  3.分代回收------------提高扫描效率

二、 用户的交互

  接受用户输入(input):input会将用户输入的所有内容都存成字符串类型(str类型)。

  int只能将纯数字的字符串转成整形

  格式化输出:

    1.     %   按照位置传,必须一一对应

adj="my name %s my age is %s" %('bob','98')
print(adj)

      如果用字典传 必须要对应相应的key ,形式-----------"%(key)"

      %s=====>可以传任意性               %d======>只能传整型

    2.str.format  (打破位置的限制)(python2/python3都能用)

adj="my name {name} my age is {age}".format(name='bob',age=98)
print(adj)

    format新知识:

print('{x}=================='.format(x='hvdjbjla'))
print('{x:=<15}'.format(x='hvdjbjla'))
print('{x:=>15}'.format(x='hvdjbjla'))
print('{x:=^15}'.format(x='hvdjbjla'))   #居中显示
print('{x:.3f}'.format(x=23482.8368342))   #取小数点后三位,且四舍五入

    3.  f  (python3.5以上版本)

a=input('my name:')
b=input('my age:')
adj=f"my name {a} my age is {b}"
print(adj)

    f用法二:{}内的字符串可以被当做表达式运行

三、基本运算符

  1.算数运算符       +-*/                       

     // 只保留整数部分

    %======>取余数

    **======>几次方

  2.比较运算符   <、>、>=、<=、==(是否相等)、!=(不等于)、

  3.赋值运算符

   变量赋值: =

   增量赋值

a = 3
a += 5
print(a)   ====>8

  4.链式赋值  

x = y = z = 10

  5.交叉赋值  

n,m=m,n

  6.解压赋值  

num_01=[11,22,23,45,34,]
a1,a3,aa,*_=num_01#取前面的值
print(a1,a3,aa)===========>11,22,23


num_01=[11,22,23,45,34,]
*_,a1,a3,aa,=num_01#取后面的值
print(a1,a3,aa)===========>23,45,34

 3.2 可变不可变类型

    可变类型:值改变,ID不变,改的是原来的值

      如:list、dict

    不可变类型:值改变,ID也变了,产生新的值,但是压根没有改变原值

      如:int、str、float、bool、

原文地址:https://www.cnblogs.com/Holmes-98/p/14209020.html