python垃圾回收离职_python04:垃圾回收、用户交互、运算符

一、垃圾回收机制详解:

1,引用计数

直接引用:直接将变量名跟值联系起来。

间接引用:容器类型存的是索引值和值的内存地址,其引用为间接引用

直接拨打电话和转分机号的区别

2,标记清除

由于存在循环引用的可能,就会导致无法被引用的值无法清除,因为引用计数不为0.

变量名存放于内存的:栈区

变量值存放于内存的:堆区

先扫描栈区的变量名,将与之间或直接引用的值标记为存活,其他堆区的值标记为失活。

再清除堆区就清除那些标记失活的(扫描栈区,标记堆区)

3,分带回收:分代回收的核心思想是:在历经多次扫描的情况下,都没有被回收的变量,

gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低。

二、与用户交互:

1,接收用户的输入:

user_name=input(‘请输入:‘)这个变量需要绑定变量名(即username=),否则会被系统

认为是垃圾清除了。

特点:输入什么都会被存成字符串

解决方案:age=int(xxx), int能且只能将纯数字的字符串转成整型。

2,字符串的格式化输出:把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出

所有版本:% (按照%s一一对应值取值,数量必须严格相等)

usname=input(‘请输入名字:‘)

usage=input(‘请输入年龄:‘)

tex={‘name‘:‘zw‘,‘age‘:18,‘hobit‘:‘play‘}

%s:

# res=‘my name is %s,and my age is %s‘ %(usname,usage)#列表内的变量的个数不能多不能少,顺序不能乱

# res= ‘my name is %(name)s,and my age is %(age)s‘ %(tex)#字典里变量的个数只能多不能少,字典不讲究顺序

.format:

# res=‘my name is {0},my age is {1},my name is {1}‘.format(usname,usage) #列表内的变量的个数不能多不能少,顺序可乱

# res=‘my name is {name},my age is {age}‘.format(name=tex[‘name‘],age=tex[‘age‘])

#.format()这相当于一个字典,该字典的定义是key=value的形式且key不需要引号,等号右边可以是任一种类型的值(可以再嵌套列表或字典,

引用采用[]索引法),大括号内的name,age相当于key。

对比:用{}代替%s,用.format()代替%()

f

# res=f‘my name is {name},my age is {age}‘

# print(res)

三、运算符

1,算术运算符:+ - * /(取小数) //(取整) %(取余) **(指数运算).......

一般的数学运算,字符也能运算(+是拼接字符,*是复制字符,a*8即8个a)

2,比较运算符:> < >=  <=  ==(判断是否相等),!=(判断是否不等)

3,赋值运算符:

赋值运算符:=

增量赋值:+=2 (等于自身加2),*= ,/= ,  **=道理类似

链式赋值:连等于,x=y=z=10(相等于x=10,y=x,z=y)

交叉赋值:a,b=b,a,ab的值互换

解压赋值:a,b,c,d,e=list 列表里的数据个数和做左边的变量名的数量必须相等。

a,b,c,*_,d,e=list 代表将列表的前三个和后两个解压赋值,其他的打包给_,

*代表中间所以值,_代表无用变量名。

解压字典默认解压的是key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值