最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Python基础教程 操作符与表达式

XAMPP案例 admin 351浏览 0评论

drh000040

链式表达式

>>> a = 1
>>> b = 2
>>> c = 3
>>> a < b == 3 #链式表达式 a < b == c  测试a是否小于b,且b是否等于c
False

in,not in操作符

in操作符

in操作符可用于判断所给数据是否包含于指定的数字序列、字符串、列表、元组、集合中,或者判断所给值是否包含于所给字典的键中,not in则相反

注:not可对任意比较结果或任意Boolean表达式进行否定,且not在比较符中有最高优先级,or优先级最低,所以A and not B or C 等同(A and (not B)) or C。总之,不确定的时候,用括号没错。

1.数字序列

>>> 1  in range(0, 5)
True

2.字符串

>>> string = "ishouke"
>>> "shouke"  in string
True

>>> "shouke"  in "ishouke"
True

3.列表

>>> "sho"  in ["i", "shou", "ke"]
False
>>> "shou" in ["i", "shou", "ke"]
True

4.元组

>>> "shou"  in ("i", "shou", "ke")
True

5.集合

>>> "shou"  in {"i", "shou", "ke"}
True

6.字典

>>> "shou"  in {1:"i", 2:"shou", 3:"ke"}
False
>>> 1  in {1:"i", 2:"shou", 3:"ke"}
True

说明:针对字典来说,仅可用于判断所给值是否包含在字典的键中,即判断键是否存在

7.文件

>>> for line in open("d:\\test.txt"):
...     print(line)
...
shouke你好

再见,2014

newyear,2015

not in

>>> "mark"  not  in ["i", "shou"]
True

is, is not操作符

操作符is和is not比较两个对象是否是相同的对象。

>>> "shouke"  is  "shouke"
True

>>> str1 = "shouke"
>>> str2 = "shouke"
>>> str1 is str2
True

>>> list1 = ["i", "shou", "ke"]
>>> list2 = ["i", "shou", "ke"]
>>> list1 is  not list2
True
>>> ["i", "shou", "ke"] is ["i", "shou", "ke"]
False

>>> list2 = ("i", "shou")
>>> list1 = ("i", "shou")
>>> list1 == list2
True

>>> dic1 = {"a":"8"}
>>> dic2 = {"a":"8"}
>>> dic1 is dic2
False

个人理解:两个值相等的可变对象,不是同一对象。

and、or、not操作符

and,or,not操作符,分别代表逻辑:与,或,非

and和or就是所谓的短路运算符,参数总是从左往右算,结果确定时就停止。返回短路运算符的值为最后计算的参数

and运算

如果左边的运算、值或者对象为True,才会对右侧表达式求值并返回右侧计算结果,否则,就停止运算并输出表达式结果、值、对象

>>> False  and  True
False

>>> 1  and  9+10
19 #注意输出结果为右侧的值

>>> 5 < 2  and  True
False

>>> 0  and  True
0

or运算

对 or 左边的表达式求值,如果左边的运算、值或者对象为True,输出表达式结果,停止对右边表达式求值,如果左边为False,继续对右边的表达式求值并输出结果

>>> 5 + 1  or  False
6    #注意,输出是左边的表达式结果
>>> False  or  7 + 5
12   #注意,输出是右边的表达式结果

not操作符

>>> not  False
True
>>> not  3 < 5
False

位运算操作符

~  取反操作符

对每一个二进制位+1取反,如果二进制位为1则结果为0,否则为1

|  或操作符

两个二进制位,或运算,只要其中有一个位为1则结果为1,否则为0

& 与操作符

两个二进制位,与运算,如果两个二进制位相同则与结果等于二进制位自身,否则为0

^ 异或操作符

两个二进制位,或运算,如果两个二进制位相同则异或结果为0,否则为1

3 –>二进制:0000 0011

2 –>二进制:0000 0010

>>> 2 ^ 3
1

说明:

2 ^ 3
  0000 0010
^ 
  0000 0011
  ---------
  0000 0001 -->十进制:1
>>> 3^2^2
3
>>> 4^5^5
4

说明:一个数对另一个数进行两次异或运算,结果为其本身

>>> 2 | 3
3

说明:

 2 | 3
  0000 0010
| 
  0000 0011
  ---------
  0000 0011 -->十进制:3
>>> 2 & 3
2

说明:

  2 & 3
  0000 0010
&
  0000 0011
  ---------
  0000 0010 -->十进制:2
>>> ~3
-4

说明:

  ~3
   0000 0011	
~
   --------
   1111 1100

符号位即最高位,为1则表示负数,计算机将其识别为补码(负数以补码形式存在),按补码的计算过程,可求其原码。计算过程:按照求负数补码的逆过程,符号位不变,数值部分最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反再加1的方法。

方法一:

   1111 1100
~
   --------
   1000 0011
+           1
   ----------
   1000 0100

方法二:

  1111 1100
-           1
  --------
   1111 1011
~  
   ----------
   1000 0100 -->十进制:-4

注:

1.符号位为0,表示正数,为1则表示负数;

2.正数的补码为其本身,负数的补码为原码取反后再加1

优先级从高到低,依次为~、&、^、|

利用if else实现三目运算符

例子:如果a =3,则b=5,否则b=0

>>> a = 3
>>> b = 5  if a==3  else  0
>>> b
5
>>> a = 4
>>> b = 5  if a==3  else  0
>>> b
0

 

转载请注明:XAMPP中文组官网 » Python基础教程 操作符与表达式

您必须 登录 才能发表评论!