day04:Python学习笔记
1、算数运算符
1、算数运算符
print(10 / 3) #结果带小数
print(10 // 3) #结果取整数,不是四舍五入
print(10 % 3) #结果取 余数
print(10 ** 3) #结果值的几次方,幂
2、比较运算符:>、<、 =、 <= 、>=、 ==、 !=
print("abc" == 10) # 判断的是值及其类型是否相等
print("abc" != 10) # 判断的是值及其类型是否相等
注:>= < <=也可以给其他类型用,但仅限于同类型之间
3、赋值运算符
3、赋值运算符
3.1变量的赋值
3.2增量的赋值
age = 18
age += 1 #相当于age = age + 1
print(age)
age *= 3 #用这种方式运用算数运算符都可以
age /= 3
3.3链式赋值
原来代码:z=10 y=z x=y
z = y = x =10 #链式赋值
3.4交叉赋值
z,y=y,z #需要一一对应
print(z,y)
3.5解压赋值 #建议用列表
salaries=[111,222,333,444,555]
m1,m2,m3,m4,m5 = salaries #其实放了list列表进去,一一对应
print(m1,m2,m3,m4,m5)
m1,m2,*_ #这个是只取前两个值,后面三个值是被*赋值给了_
注:*:只能取前后的值,无法取中间的值
3、逻辑运算符: not>and>or
not:反选
and:链接多个条件,多个条件必须同时成立,最终结果才为True
or:链接多个条件,多个条件但凡有一个成立,最终结果就为True
注:优先级not>and>or
4、垃圾回收机制GC
4.1引用计数
引用计数增加:
x = 10 #引用次数1
y = x #引用次数2
l = [a,x] #引用次数3
引用计数减少:
dal x #引用次数2
y = 12 #引用次数1
dal l[1] #引用次数0
4.2分代回收:为了解决引用计数的效率问题
4.3标记清除:为了解决循环引用带来的内存泄漏问题
核心:一个变量值没有任意一条可以从栈区出发到自己的引用,就会被标记下来,方便后续清除
x1=[111]
x2=[222]
x1.append(x2) #.append是添加
x2.append(x1)
print(x1) #[111的内存地址,x2的内存地址]
print(x2) #222的内存地址,x1的内存地址]
5、与用户交互
5.1接收用户输入:python3中的input会把用户输入的所有内容都存成str类型
age = input("请输入您的年龄: ") # "内容"
print(age,type(age))
注:int可以把纯数字组成的字符串转换整型
如:res = int('18')
print(res,type(res))
5.2输出
print(("hello1",end='*')
msg = "my name is %s my age is %s" % ("egon", [1,2,3])