zoukankan      html  css  js  c++  java
  • 【Python】-NO.98.Note.3.Python -【Python3 解释器、运算符】

    1.0.0 Summary

    Tittle:【Python】-NO.98.Note.3.Python -【Python3 解释器】

    Style:Python

    Series:Python

    Since:2018-07-08

    End:2018-07-08

    Total Hours:30+

    Degree Of Diffculty:5

    Degree Of Mastery:5

    Practical Level:5

    Desired Goal:5

    Archieve Goal:3

    Gerneral Evaluation:3

    Writer:kingdelee

    Related Links:

    http://www.cnblogs.com/kingdelee/

    http://www.runoob.com/python3/python3-basic-syntax.html

    安装完成后,我们可以将路径 /usr/local/python3/bin 添加到您的 Linux/Unix 操作系统的环境变量中,这样您就可以通过 shell 终端输入下面的命令来启动 Python3 。

    $ PATH=$PATH:/usr/local/python3/bin/python3 # 设置环境变量

    当键入一个多行结构时,续行是必须的。我们可以看下如下 if 语句:

    >>> flag = True
    >>> if flag :
    ...     print("flag 条件为 True!")
    ... 
    flag 条件为 True!
    

    通过以下命令执行该脚本:

    python3 hello.py
    

    在Linux/Unix系统中,你可以在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行:

    #! /usr/bin/env python3
    

    然后修改脚本权限,使其有执行权限,命令如下:

    $ chmod +x hello.py
    

    执行以下命令:

    ./hello.py
    

     

    Python位运算符

     下表中变量 a 为 60,b 为 13二进制格式如下:

    a = 0011 1100
    
    b = 0000 1101
    
    -----------------
    
    a&b = 0000 1100
    
    a|b = 0011 1101
    
    a^b = 0011 0001
    
    ~a  = 1100 0011
    
    运算符描述实例
    & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
    | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
    ^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
    ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
    << 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
    >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

      

    #!/usr/bin/python3
     
    a = 60            # 60 = 0011 1100 
    b = 13            # 13 = 0000 1101 
    c = 0
     
    c = a & b;        # 12 = 0000 1100
    print ("1 - c 的值为:", c)
     
    c = a | b;        # 61 = 0011 1101 
    print ("2 - c 的值为:", c)
     
    c = a ^ b;        # 49 = 0011 0001
    print ("3 - c 的值为:", c)
     
    c = ~a;           # -61 = 1100 0011
    print ("4 - c 的值为:", c)
     
    c = a << 2;       # 240 = 1111 0000
    print ("5 - c 的值为:", c)
     
    c = a >> 2;       # 15 = 0000 1111
    print ("6 - c 的值为:", c)
    

    Python逻辑运算符

    Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

    运算符逻辑表达式描述实例
    and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
    or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
    not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

      

    以上实例输出结果:

     
    #!/usr/bin/python3
     
    a = 10
    b = 20
     
    if ( a and b ):
       print ("1 - 变量 a 和 b 都为 true")
    else:
       print ("1 - 变量 a 和 b 有一个不为 true")
     
    if ( a or b ):
       print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
    else:
       print ("2 - 变量 a 和 b 都不为 true")
     
    # 修改变量 a 的值
    a = 0
    if ( a and b ):
       print ("3 - 变量 a 和 b 都为 true")
    else:
       print ("3 - 变量 a 和 b 有一个不为 true")
     
    if ( a or b ):
       print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
    else:
       print ("4 - 变量 a 和 b 都不为 true")
     
    if not( a and b ):
       print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
    else:
       print ("5 - 变量 a 和 b 都为 true")

    以上实例输出结果:

    1 - 变量 a 和 b 都为 true
    2 - 变量 a 和 b 都为 true,或其中一个变量为 true
    3 - 变量 a 和 b 有一个不为 true
    4 - 变量 a 和 b 都为 true,或其中一个变量为 true
    5 - 变量 a 和 b 都为 false,或其中一个变量为 false

    Python成员运算符

    运算符描述实例
    in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
    not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

      

    #!/usr/bin/python3
     
    a = 10
    b = 20
    list = [1, 2, 3, 4, 5 ];
     
    if ( a in list ):
       print ("1 - 变量 a 在给定的列表中 list 中")
    else:
       print ("1 - 变量 a 不在给定的列表中 list 中")
     
    if ( b not in list ):
       print ("2 - 变量 b 不在给定的列表中 list 中")
    else:
       print ("2 - 变量 b 在给定的列表中 list 中")
     
    # 修改变量 a 的值
    a = 2
    if ( a in list ):
       print ("3 - 变量 a 在给定的列表中 list 中")
    else:
       print ("3 - 变量 a 不在给定的列表中 list 中")
    1 - 变量 a 不在给定的列表中 list 中
    2 - 变量 b 不在给定的列表中 list 中
    3 - 变量 a 在给定的列表中 list 中

    Python身份运算符

    身份运算符用于比较两个对象的存储单元

    运算符描述实例
    is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
    is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

    注: id() 函数用于获取对象内存地址。

    以下实例演示了Python所有身份运算符的操作:

    #!/usr/bin/python3
     
    a = 20
    b = 20
     
    if ( a is b ):
       print ("1 - a 和 b 有相同的标识")
    else:
       print ("1 - a 和 b 没有相同的标识")
     
    if ( id(a) == id(b) ):
       print ("2 - a 和 b 有相同的标识")
    else:
       print ("2 - a 和 b 没有相同的标识")
     
    # 修改变量 b 的值
    b = 30
    if ( a is b ):
       print ("3 - a 和 b 有相同的标识")
    else:
       print ("3 - a 和 b 没有相同的标识")
     
    if ( a is not b ):
       print ("4 - a 和 b 没有相同的标识")
    else:
       print ("4 - a 和 b 有相同的标识")
    1 - a 和 b 有相同的标识
    2 - a 和 b 有相同的标识
    3 - a 和 b 没有相同的标识
    4 - a 和 b 没有相同的标识

    is 与 == 区别:

    is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

    >>>a = [1, 2, 3]
    >>> b = a
    >>> b is a 
    True
    >>> b == a
    True
    >>> b = a[:]
    >>> b is a
    False
    >>> b == a
    True

    Python运算符优先级

    运算符描述
    ** 指数 (最高优先级)
    ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
    * / % // 乘,除,取模和取整除
    + - 加法减法
    >> << 右移,左移运算符
    & 位 'AND'
    ^ | 位运算符
    <= < > >= 比较运算符
    <> == != 等于运算符
    = %= /= //= -= += *= **= 赋值运算符
    is is not 身份运算符
    in not in 成员运算符
    not or and 逻辑运算符

      

      

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    a = 20
    b = 10
    c = 15
    d = 5
    e = 0
     
    e = (a + b) * c / d       #( 30 * 15 ) / 5
    print "(a + b) * c / d 运算结果为:",  e
     
    e = ((a + b) * c) / d     # (30 * 15 ) / 5
    print "((a + b) * c) / d 运算结果为:",  e
     
    e = (a + b) * (c / d);    # (30) * (15/5)
    print "(a + b) * (c / d) 运算结果为:",  e
     
    e = a + (b * c) / d;      #  20 + (150/5)
    print "a + (b * c) / d 运算结果为:",  e
    (a + b) * c / d 运算结果为: 90
    ((a + b) * c) / d 运算结果为: 90
    (a + b) * (c / d) 运算结果为: 90
    a + (b * c) / d 运算结果为: 50

     

  • 相关阅读:
    Flash影片剪辑导出视频静止的问题 被解决了!
    关于sample采样器无法改变声调的解决方法
    FL的萌新之路,开始了!
    暑假结束时
    关于Pascal调试时同时出现ntdll.dll、SIGSEGV错误的原因
    XCTF-WEB-view_source
    XCTF-MISC-如来十三掌
    XCTF-MISC-give_you_flag
    《了不起的盖茨比》【开头诗句,尼克独白】
    MiniMIPS32微处理器的流水线相关问题和暂停机制
  • 原文地址:https://www.cnblogs.com/kingdelee/p/9284191.html
Copyright © 2011-2022 走看看