一直都在
不断前进和探索

Python的变量与运算符

变量

Python中变量简单点说就是名字,没有其他的语言那么复杂。

定义变量,例:A = [1,2,3,4,5,6]

赋值符号“=”

Python变量命名

  • 定义变量名的时候,首字母不能是数字
  • 只能是字母、数字、下划线作为变量名
  • 系统保留关键字不能用在变量名中(如:and、if、import等)
  • Python变量名区分大小写
  • 变量名没有其他语言的分类限制

值类型”intstrtuple

值类型不可改变,例:

a= 1

b = a

a = 3

因为在a指向3的时候,没有改变b

print(b)结果依然为1

 

 

引用类型”listsetdict

引用类型可改变

a = [1,2,3]

b = a

a[0] = ‘1’

因为这里是把1修改为’1′,并没有给b新的值

所以print(b)结果为[‘1’,2,3]

 

 

函数”id”可查看内存地址,用法id(a)

“append”追加元素,用法a.append(4)

运算符

赋值运算符

例子:

a = 1

b = 2

b = b + a 用”+=”写法为:b+=a

赋值运算符是:运算后赋值,会改变元素后赋值!

比较(关系)运算符

除了数字之外还能比较str、bool等..

主要是用来比较元素,最终返回布尔值的结果True或者False

例:

  • 2 >= 1

‘abc’ > ‘abd’ 结果 False ,因为Python中会把相同序号字符的ASCII码进行比较

逻辑运算符

概念:逻辑运算符主要是用来操作布尔类型,

布尔类型操作同时返回结果也是布尔类型

非布尔类型操作返回结果自动转换为非布尔类型结果

and

  • True and True 返回True,True and False 返回False,False and False返回False(两个为真就为真,两个为假就为假,有一个False就是False)
  • 真且假为假
  • 1 and 0 结果0

or

  • True or True 返回Tue,True or False 返回True,False or False 返回False(两个为真就为真,两个为假就为假,有一个返回True就是True)
  • 真或假为真
  • [1] or [] 返回[1]

not

  • not只操作一个
  • not False 为True
  • not True 为False
  • 一定返回的是True或者False

int、float在逻辑运算中0为False,非0为True

str在逻辑运算中 空字符串为False,非空为True

  • 1 and 2 返回结果2(1且2,and需要解析完1后解析2,2是最近解析的取2)
  • 0 or 1 返回结果1(0或1,0为假取真)
  • 1 or 2 返回结果1(1或2,or第一个为真就是真,故直接取1)
  • 问:and 和 or同样两个真,为什么and取最后一个,or取第一个
  • 答:and(且) 里 如果是0 and 1 那么会直接取0,但是1且2的时候1为真,因为and里有一个False就是False,1不是False不能判断计算结果所以需要知道and后面的数值结果,解析到2取最近的一个False。而or(或)有一个条件满足False即可,1 or 2 1为False可直接判断计算结果故直接取1。

PS:计算机计算过程中,2个数值中有一个能判断计算结果时直接返回结果,如果第一个不能时继续判断第二个,并取最近的一个数值。(在这里蒙圈了半天)

成员运算符

a =1

需要判断a是否在列表[1,2,3,4,5]中

用法:a in [1,2,3,4,5] 返回True

in判断是否在,not in判断是否不在

dict成员运算中,{key:value} 成员运算符(in/not in)只判断key。

身份运算符

is、not is身份运算符返回结果同样是bool

如果两个变量取值完全相等,则is 返回True。

==(关系运算符)比较的是值是否相等,is(身份运算符)不是比较值,比较的是两个变量的身份是否相等,is的身份比较可以简单理解为内存地址是否相等。

对象三个特征

  1. a ==b 值
  2. a is b 身份
  3. 类型

Python判断变量类型的函数:isinstance

用法

  • a = ‘hello’ isinstance(a,str) 判断a是否为字符串
  • a = ‘hello’ isinstance(a,(int,str,float)) 判断a是否为int、str、float里的一种

type不能判断不能判断变量的子类,而isinstance可以。

位运算符

“&”(按位与)就是把两个参与计算的数每一位作为比较,如果不是两个位数为1,有一个为0或者两个都为0,得到的结果为0.

a = 2  b = 3 a & b 结果 为2

a 按位与 b,a 转化为2进制后为10,b转化为二进制为0b11,a的第一位跟b的第一位都为1,得到结果1。a的第二位是0,b的第二位是1得到结果0。a按位与b对比后得到结果是二进制的10,转化为十进制是2,所以a & b 结果为2.

“|”(按位或)只要有一个为1,最终结果就是1.

a = 2  b = 3 a | b 结果为3

a | b,a 转化为2进制后为10,b转化为二进制为0b11,a第一位1,b第一位1 第一位都是1得到结果1。a第二位0,b第二位1得到结果1,最终结果11,转化为十进制是3,故 a | b 结果为3

Python运算符思维导图

赞(0)
未经允许不得转载:吟风博客 » Python的变量与运算符
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

一个纯粹用来记录的博客

Url在线批量打开