1.is 和==的区别
当比较变量是不可变类型比如str时,is和==没有区别
当比较变量是list,dict时,is和==不能划等号
原因:
- is, is not 对比的是两个变量的内存地址
- ==, != 对比的是两个变量的值
2.保留结果精度Decimal
import decimal
from decimal import Decimal
decimal.getcontext().prec=4
IN:Decimal(3.999999)/Decimal(3)
OUT:1.333
3.被忽略的print
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按
str()
方式进行转换为字符串输出; - 关键字参数
sep
是实现分隔符,比如多个参数输出时想要输出中间的分隔字符; - 关键字参数
end
是输出结束时的字符,默认是换行符\n
; - 关键字参数
file
是定义流输出的文件,可以是标准的系统输出sys.stdout
,也可以重定义为别的文件; - 关键字参数
flush
是立即把内容输出到流文件,不作缓存。
4.反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
补码:正数的补码就是原码,负数的补码是反码+1。
5.assert
assert
这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError
的异常。
6.列表推导式【总是不知道怎么加入if】
x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]