• A Byte of Python 笔记(3)运算符和表达式


    第5章 运算符与表达式

    大多数语句(逻辑行)都包含表达式。例子,如 2 + 3。一个表达式可以分解为运算符和操作数。

    运算符

    运算符

    名称

    说明

    例子

    +

    两个对象相加

    3 + 5得到8。'a' + 'b'得到'ab'。

    -

    得到负数或是一个数减去另一个数

    -5.2得到一个负数。50 - 24得到26。

    *

    两个数相乘或是返回一个被重复若干次的字符串

    2 * 3得到6。'la' * 3得到'lalala'。

    **

    返回x的y次幂

    3 ** 4得到81(即3 * 3 * 3 * 3)

    /

    x除以y

    4/3得到1(整数的除法得到整数结果)。

    4.0/3或4/3.0得到1.3333333333333333

    //

    取整除

    返回商的整数部分

    4 // 3.0得到1.0

    %

    取模

    返回除法的余数

    8%3得到2。-25.5%2.25得到1.5

    <<

    左移

    把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)

    2 << 2得到8。——2按比特表示为10

    >>

    右移

    把一个数的比特向右移一定数目

    11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。

    &

    按位与

    数的按位与

    5 & 3得到1。

    |

    按位或

    数的按位或

    5 | 3得到7。

    ^

    按位异或

    数的按位异或

    5 ^ 3得到6

    ~

    按位翻转

    x的按位翻转是-(x+1)

    ~5得到6。

    <

    小于

    返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

    5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3< 5 < 7返回True。

    >

    大于

    返回x是否大于y

    5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。

    <=

    小于等于

    返回x是否小于等于y

    x = 3; y = 6; x <= y返回True。

    >=

    大于等于

    返回x是否大于等于y

    x = 4; y = 3; x >= y返回True。

    ==

    等于

    比较对象是否相等

    x = 2; y = 2; x == y返回True。

    x ='str'; y = 'stR'; x == y返回False。

    x ='str'; y = 'str'; x == y返回True。

    !=

    不等于

    比较两个对象是否不相等

    x = 2; y = 3; x != y返回True。

    not

    布尔“非”

    如果x为True,返回False。

    如果x为False,它返回True。

    x = True; not y返回False。

    and

    布尔“与”

    如果x为False,x and y返回False,否则它返回y的计算值。

    x = False; y = True;

    x and y,由于x是False,返回False。

    在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。

    or

    布尔“或”

    如果x是True,它返回True,

    否则它返回y的计算值。

    x = True; y = False; x or y返回True。

    短路计算在这里也适用。

    运算符优先级

    下表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。

    运算符

    描述

    lambda

    Lambda表达式

    or

    布尔“或”

    and

    布尔“与”

    not x

    布尔“非”

    in,not in

    成员测试

    is,is not

    同一性测试

    <,<=,>,>=,!=,==

    比较

    |

    按位或

    ^

    按位异或

    &

    按位与

    <<,>>

    移位

    +,-

    加法与减法

    *,/,%

    乘法、除法与取余

    +x,-x

    正负号

    ~x

    按位翻转

    **

    指数

    x.attribute

    属性参考

    x[index]

    下标

    x[index:index]

    寻址段

    f(arguments...)

    函数调用

    (experession,...)

    绑定或元组显示

    [expression,...]

    列表显示

    {key:datum,...}

    字典显示

    'expression,...'

    字符串转换

    计算顺序:运算符优先级表决定了哪个运算符在别的运算符之前计算。可以通过圆括号改变计算顺序。

    结合规律:通常由左向右结合,赋值运算符由右向左结合。

    表达式

    计算矩形的面积和周长

    # !/usr/bin/python
    # Filename: expression.py
    length = 5
    breadth = 2
    area = length * breadth
    print 'Area is', area
    print 'Perimeter is %d' % (2*(length + breadth))

    输出

    image 

    此处注意print 的两种打印方式

  • 相关阅读:
    MVC、MVP、MVVM架构模式
    JavaScript中的跨域详解(二)
    JavaScript中的跨域详解(一)
    RESTful基础知识
    Date类
    数据的相对比较
    递归应用
    浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?
    【04】图解JSON
    【08】css sprite是什么,有什么优缺点
  • 原文地址:https://www.cnblogs.com/blueskylcc/p/5332209.html
Copyright © 2020-2023  润新知