Yunyuzuiluo

Python 百战 2

使用\行连接符

a = [10,20,30,40,
50,60,70,
80,90,100]

对象的本质

a=3
print(a)#值
print(id(a))#标识
print(type(a))#类型

Python标识符命名规则

删除变量和垃圾回收机制

a=123
del a #不用了就删了

常量,赋值

链式赋值:
x=y=3
系列解包赋值:
a,b,c=4,5,6 相当于: a=4;b=5;c=6
a,b=1,2
a,b=b,a #变量值互换,不用第三个变量

数字和基本运算符

主要注意‘/’和‘//’还有‘**’
分别是除,整除,幂
使用 divmod() 函数同时得到商和余数:

divmod(13,3)
(4, 1)

三种进制

Python中,除了十进制,还有其他三种进制:
0b 或 0B ,二进制 0 1
0o 或 0O ,八进制 0 1 2 3 4 5 6 7
0x 或 0X ,十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f

运算符

测试逻辑运算符

a,b,c=10,20,30
print((a<b) and (b<c)) #and并且 输出结果是
True
print((a>b) or (b>c)) #or或者 输出结果是
False
print(not(b<c)) #not非 输出结果是
False

位运算符

定义两个二进制数

a = 0b10110 # 22
b = 0b01101 # 13

位运算演示
print(bin(a | b)) # 按位或:0b11111 (31)
print(bin(a & b)) # 按位与:0b00100 (4)
print(bin(a ^ b)) # 按位异或:0b11011 (27)
print(bin(~a)) # 按位取反:-0b10111 (-23,实际是补码表示)

位移运算演示
print(5 << 1) # 左移1位:10 (相当于52)
print(5 << 2) # 左移2位:20 (相当于5
4)
print(20 >> 1) # 右移1位:10 (相当于20/2)
print(20 >> 2) # 右移2位:5 (相当于20/4)

实际应用示例
检查第3位是否为1(从右开始数,最低位为0)
mask = 0b00100
print("第3位是1吗?", (a & mask) != 0) # 输出True

同一运算符

s 与 == 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
== 用于判断引用变量引用对象的值是否相等,默认调用对象的

整数缓存问题

1 命令行模式下,Python仅仅对比较小的整数对象进行缓存(范
围为[-5, 256])缓存起来 C语言底层用数组实现,连续分配空间,便于查找 ,而并非
是所有整数对象。
2 文件模式下,所有数字都会被缓存,范围是:[-无穷大,+无穷大])
缓存实现:[-5,256]仍然 底层用数组实现 ;不在[-5,256]出现的数,缓存到 链表中,不连续分配
空间 。
a = 1000
b = 1000
a == b #True
a is b #命令行下是False。 文件下执行是True
c = 10
d = 10
c is d #True

成员运算符

a = "python"
b = "py"
print(b in a) #True
c = [10,20,30]
print(10 not in c) #False

posted on 2025-04-06 19:44  刘晋宇  阅读(10)  评论(0)    收藏  举报

导航