类jvm和pvm需要提供一套GC垃圾回收机制,
变量回收,有个引用计数的机制
1等于一个字面常量
y=x,相当于把y指向3,3 的计数就再加一了
但是有的时候,会了方便使用,就不去刻意清空,海量的数据的时候,就要考虑把什么数据留在内存中了
垃圾回收期不是把你的数据回收就没了, 还需要规整
c,c++语言,内存回收是由自己申请的,释放的时候,把固定位置的数据释放掉了,
c和c++需要自己规整之前释放的内存空间,让后面申请的内存可以使用,否则不连续
(因为有连续大文件比如数组,内存中经常使用的数据放在一个位置,使用频率较少的紧挨着,最少的放在第二个,最经常访问的放到内存最少清理的地方,老年代,新生代,持久代)
引用计数和内存管理需要知道,内存管理不要手动操作,否则引起巨大性能问题
把内存想象成线性
先做什么后做什么
、
判断条件执行什么
条件满足,循环执行
语句块前面要冒号,还需要缩进
if后面会转换成一个布尔表达式,
非0都是真,打勾都是false
空集合,四大皆空,none ,0,仅限于python
一旦某个分支进去以后,就不再进行比较了,直接结束
else就是兜底的
分支嵌套
int可以强制转换成数字
上面的写法跟下面是等效的
下面是中间临时生成一个匿名对象
a只要不消亡,引用计数继续为1
用一下没人记得就删除了,最后被垃圾回收了
折板的方式来判断
这里面的条件隐含着前面你判断的条件
打印10-1
-10的话进入死循环,while用的比较少
可迭代iteratable对象,从中拿元素
range返回range对象。可迭代对象
range可迭代对象需要用for循环来迭代,一个个拿出来
查看range怎么用,使用问号?
默认从0开始前闭后开,前包,后不包【1,5)不带5
大部分语言就这样
range对象,是个惰性的,你不引用,它就是个对象,告诉你1-4可迭代对象,还有步长
倒叙就需要加-1
range函数返回的是range对象,这个东西不是立即能拿到,而是你拿一个给你
这个没有给你可迭代对象,你就没有迭代的可能,里面没东西就不能拿东西迭代,循环进不去,就打印不出来了,循环没东西就不执行,不会报错的
for循环只要是可迭代对象,就有各种玩法
这次循环中断,进行下一次
位于是按位相乘
、
所以基数一定有1,x如果等于1就代表一定是奇数
打印偶数,加步长更好,少迭代效率高 位于是按位相乘
0&1 8421算法
0000
0001
相乘
=0
不跳出本次循环,就打印
1&1
0001
0001
=1
跳出循环,继续下一次判断,不打印
2&1
0010
0001
=0
不跳出本次循环,就打印
break代表中断当前循环,只影响当前的所在的循环