python note3.运算符

定义变量时,不需要定义类型,即动态语言特性

a = [1,2,3]
b = a
a[0] = '1' #a[0]相当于[1,2,3][0]='1
print b
['1', 2, 3]
a = 1
b = a
a = 3
print b
1

int str tuple元组(不可改变)值类型 list set dict(可变)引用类型,所以不同

把type当作变量 的一些问题

type = 1
type (1)   #'int' object is not callable
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-3-b09e034f1380> in <module>()
      1 type = 1
----> 2 type (1)


TypeError: 'int' object is not callable
a = 'hello'
a = a + 'python'
print a#不可改变 为何却能运算,因为新的字符串,不是改变原字符串
hellopython
#eg
b = 'hello'
id (b)
75393304L
b = b + 'python'
id (b)
82362160L

元组tuple与列表list的区别

a = [1,2,3]
id(a)
75848072L
hex(id(a))
'0x4855988L'
a[0]='1'
id(a)
75848072L

id未发生变化

a = (1,2,3)
a[0]='1'#不可改变,元组
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-12-5828056e5c1b> in <module>()
      1 a = (1,2,3)
----> 2 a[0]='1'


TypeError: 'tuple' object does not support item assignment
b = [1,2,3]
b.append(4)
print(b)
[1, 2, 3, 4]
c=(1,2,3)
c.append(4)#与上作对比
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-14-e9fcc9da48a4> in <module>()
      1 c=(1,2,3)
----> 2 c.append(4)


AttributeError: 'tuple' object has no attribute 'append'
a=(1,2,3,[1,2,4])#如何访问4?
 a[3][2]='3'
 a[3][2]
'3'
a
(1, 2, 3, [1, 2, '3'])

运算符

算术运算、赋值、比较
3/2
1

思维导图

#python没有自增自减
c++
  File "<ipython-input-10-39edec1449c4>", line 2
    c++
       ^
SyntaxError: invalid syntax
#ascll 用ord()
ord('a')
97
'a'>'b'
False
ord('b')
98
'abc'<'abd'#每一个字符一一比较
True
'acd'<'abe'
False
[1,2,3]<[1,2,4]
True
(1,2,3)<(1,3,2)
True
ord('0')
48
逻辑运算
True and True
True
True and False
False
True or False
True
not True
False
[1] or []
[1]
[] or [1]
[1]
'1' and ''
''
'' and '1'
''
1 and 0
0
0 and 1
0
1 and 2#都表示True 但是计算顺序使然
2
2 and 1
1
0 or 1
1
1 or 0
1
1 or 2
1
2 or 1
2
成员运算符 in /not in

判断a 是否在[]列表中

a = 1
a in [1,2,3,4,5]
True

元组 列表 集合 字典

字典的成员关系运算

b='a'
b in {'c':1}
False
b = 1
b in {'c':1}
False
b = 'c'
b in {'c':1}
True

身份运算

a = 1
b =1.0
a == b
True
a is b#身份运算,内存地址是否相同
False
#例子比较 元组 集合
a ={1,2,3}
b ={2,1,3}
a == b
True
a is b
False

对象的三个特征: 值 身份 类型

a = 'hello'
type(a) == int
False
#专门用来判断类型的运算符
isinstance(a,str)
True
isinstance(a,int)
False
#另一个用法,a 是否是元组中的类型中的一种,返回, 是
isinstance(a,(int,str,float))
True
type #不能判断对象的子对象
位运算符:都是对二进制数进行运算,把数字!当做!二进制数进行运算
a = 2#二进制为 10
b = 3# 11
a & b#每一位进行比较是否都为1,否则结果为0
#         1 0
#    &    1 1
#    =    1 0
2
a = 2
b = 3
a | b#每一位只要有一个1,则结果为1
#         1 0
#     |   1 1
#     =   1 1
3
&# 按位与
|# 按位或
~# 按位取反
<<# 左移动
>># 右移动

转载于:https://www.cnblogs.com/wuyifan/p/11469880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值