python(五)——运算符
1.成员运算符,判断某个东西是否在某个东西里包含:in,not in
name = "abcd"
if "ac" in name:
print("ok")
else:
print("error")# 结果error if "a" not in name:
print("ok")
else:
print("error")# 结果error
2.布尔值 True,False
== > < >= <= !=(不等于) <>(不等于) not(非)
v = not False # True
name = 'abcd'
v = 'c' in name
print(v) # True
if v:
print('') # 1
else:
print('')
3.逻辑运算
and,or,not
user == 'alex' and (pwd == '123' or 1 == 1)
先计算口号里面的
执行顺序:
从前到后
结果
True OR ==> True
True AND ==> 继续走
False OR ==> 继续走
False AND ==> False
4.赋值运算
+=,-=,/=,//=,*=,%=,**
a = 3
b = 3
c = 8
print(a ** b) # 27 次方
print(a * b) # 9
print(c // a) # 整除 2
print('#' * 50) 50个前面字符串部分
分类:
结果是值:
算术运算
赋值运算
结果是布尔值:
比较运算
逻辑运算
成员运算
is, is not
# is 用户对象比较 id()
sal = 5000;
sum = 5000;
print(sal is sum) # True, 他们id相同
5,位运算符
'''
位运算符
& 与
| 或
! 非
^ 异或
<< 左移
>> 右移
'''
num = 8
print(bin(num)) # 0b1000, 0b表示二进制
binNum = 0b1111
print(int(binNum)); # oNum = 0o5432 # 0o开头表示八进制
print(int(oNum)) # print(3 & 2) #
https://www.cnblogs.com/fmgao-technology/p/9261794.html
1. 小整数对象池
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,
所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。

In [1]: a=-5 In [2]: b=-5 In [3]: a is b
Out[3]: True In [4]: a=256 In [5]: b=256 In [6]: a is b
Out[6]: True In [7]: a=1000 In [8]: b=1000 In [9]: a is b
Out[9]: False

intern机制处理空格一个单词的复用机会大,所以创建一次,有空格创建多次,但是字符串长度大于20,就不是创建一次了。

In [13]: a="abc" In [14]: b="abc" In [15]: a is b
Out[15]: True In [16]: a="helloworld" In [17]: b="helloworld" In [18]: a is b
Out[18]: True In [19]: a="hello world" In [20]: b="hello world" In [21]: a is b
Out[21]: False


s1 = "abcd"
s2 = "abcd"
print(s1 is s2) s1 = "a" * 20
s2 = "a" * 20
print(s1 is s2) s1 = "a" * 21
s2 = "a" * 21
print(s1 is s2) s1 = "ab" * 10
s2 = "ab" * 10
print(s1 is s2) s1 = "ab" * 11
s2 = "ab" * 11
print(s1 is s2)
# True
# True
# False
# True
# False

2.大整数对象池。说明:终端是每次执行一次,所以每次的大整数都重新创建,而在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以
这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。c1 和d1 处于一个代码块,而c1.b和c2.b分别有自己的代码块,所以不相等。
C1.b is C2.b

In [22]: a=1000 In [23]: b=1000 In [24]: a is b
Out[24]: False In [25]: a=-1888 In [26]: b=-1888 In [27]: a is b
Out[27]: False In [28]:


c1 = 1000
d1 = 1000
print(c1 is d1) # True
class C1(object):
a = 100
b = 100
c = 1000
d = 1000 class C2(object):
a = 100
b = 1000 print(C1.a is C1.b) # True
print(C1.a is C2.a) # True
print(C1.c is C1.d) # True
print(C1.b is C2.b) # False

python(五)——运算符的更多相关文章
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 【Python五篇慢慢弹】数据结构看python
数据结构看python 作者:白宁超 2016年10月9日14:04:47 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...
- 【Python五篇慢慢弹(3)】函数修行知python
函数修行知python 作者:白宁超 2016年10月9日21:51:52 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...
- 【Python五篇慢慢弹(4)】模块异常谈python
模块异常谈python 作者:白宁超 2016年10月10日12:08:31 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondo ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- Python基本运算符
Python基本运算符 什么是操作符? 简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符. Python语言支持操作者有以下几种类型. 算术运算符 比较(即关系)运算符 ...
- Python算术运算符
Python 运算符 什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4和5被称为操作数,"+"号为运算符. Python语言支持 ...
- Day2 Python的运算符及三大语句控制结构
Python的运算符 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 Python的三大语句控制结构: ...
- Python 算术运算符
Python 算术运算符 运算结果为浮点数 除法:/ 整除: // 求余计算: % 求余运算可以用于固定时间的检测,比如说每10分钟进行一次什么样的操作,则:minute % 10 乘方运算:
随机推荐
- underscore.js常用的API
过滤 var bigClassData = _.filter(data.Results, function (num) { return num.ClassType == 0; }); var fin ...
- SCRUM 12.18
明天就是编译课设的第二次中期考核了,大家都感到有一些压力. 所以我们决定今天减少一些工作量. 工作任务分配依旧如往常 成员 任务 彭林江 落实API 郝倩 研究遍历美团数据方法 牛强 落实意见反馈功能 ...
- 《Linux内核设计与实现》 第五周 读书笔记(第十八章)
第18章 调试 20135307张嘉琪 18.1 准备开始 18.2 内核中的bug 内核中的bug多种多样,它们的产生可以有无数的原因,同时它们的表象也变化多端,从明白无误的错误代码(比如,没有把正 ...
- LINUX实践之模块
模块实践 --关于模块代码部分 ---首先是.c代码: 一定会用到的函数有这几个:module_init().module_exit().MODULE_LICENSE() 会用到的头文件:module ...
- 小学四则运算APP 第一个冲刺 第八天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布的是还未完成的功能二(选择题): ChoiceActivity.java: packa ...
- 如何自定义一个组件loading
使用时需要Vue.use()一下
- 原生js作用域(红宝书)
function fn(){ ; alert(a); // 2; } alert(a);//未被定义: alert(b);//全局变量:b=2: ; function fn1(){ ; functio ...
- js的forEach遍历不可以给value赋值
可以给value的对象赋值,如果想共用内存地址可以使用for循环更改数组内对象的值:
- hive视图
简化复杂的查询 员工好.姓名.月薪.年薪.在一个emp表中; 部门名称在dept的表中;并未年薪起了一个名字annlsal 查询视图 视图是一个虚表,是不存数据的
- __slots__用法以及优化
其实也是无意之中又看到这个东西,这次索性再记一下,免得下次忘记又再看一遍,往复循环浪费了太多时间. __slots__其实我做项目这么久还没有主动使用过.下面reference有提到这么一句话 War ...