3.Python常用逻辑运算符
In [1]:
a = 9
b = 2
In [2]:
#乘
result = a * b
print('{}*{}={}'.format(a, b, result))
In [3]:
#除
result = a / b
print('{}/{}={}'.format(a, b, result))
In [4]:
#幂
result = a ** b
print('{}**{}={}'.format(a, b, result))
In [5]:
#整除
result = a // b
print('{}//{}={}'.format(a, b, result))
In [6]:
#取模
result = a % b
print('{}%{}={}'.format(a, b, result))
In [7]:
n1 = int(input('请输入第一个数'))
n2 = int(input('请输入第二个数'))
In [8]:
result = n1 > n2
print('%d > %d is %s' %(n1, n2, result))
In [9]:
result = n1 < n2
print('%d < %d is %s' %(n1, n2, result))
In [10]:
result = n1 == n2
print('%d == %d is %s' %(n1, n2, result))
In [11]:
result = n1 != n2
print('%d != %d is %s' %(n1, n2, result))
In [12]:
UserName_Check = 'xiaoming'
In [13]:
UserName = input('请输入姓名:') #输入错误用户名
In [14]:
result = UserName_Check == UserName
print('输入匹配是:%s' %(result))
In [15]:
UserName = input('请重新输入姓名:') #输入正确用户名
In [16]:
result = UserName_Check == UserName
print('输入匹配是:%s' %(result))
In [17]:
Num1 = 100
Num2 = 100
print(id(Num1), Num1)
print(id(Num2), Num2)
print(Num1 is Num2)
and 逻辑与
or 逻辑或
not 逻辑非
2.5 注意:python中存在小整数对象池和大整数对象池问题。
1.小整数对象池
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。
2.大整数对象池
终端是每次执行一次,每次的大整数都重新创建,而在python源文件中,每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象
而在终端交互模式中,即使执行相同的终端命令,不同交互模式下的每个大整数变量分别有自己的代码块内存,申请存储大整数的内存空间也不同,所以不相等
详细实验如下:
In [18]:
Num1 = 10000
In [19]:
Num2 = 10000
In [20]:
print('Num1:', Num1, id(Num1))
print('Num2:', Num2, id(Num2))
print('Num1 is Num2: ', (Num1 is Num2))
源文件模式下的大整数对象池(同一个内存块定义大整数):
版权所有
http://www.cnblogs.com/King-Penguin
posted on 2019-12-22 13:55 King-Penguin 阅读(540) 评论(0) 编辑 收藏 举报