• 转 Python学习(四)


    四、运算符和表达式

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

    运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示。运算符需要数据来进行运算,这样的数据被称为 操作数 。在这个例子中,2和3是操作数。

    1、运算符:

    我们可以交互地使用解释器来计算例子中给出的表达式。例如,为了测试表达式2 + 3,使用交互式的带提示符的Python解释器:

    >>> 2 + 3 

    >>> 3 * 5 
    15 
    >>> 

    2、运算符与用法:

    大多数运算符与C/C++类似,这里之提出不同的运算符:

    ** 返回x的y次幂 3 ** 4得到81(即3 * 3 * 3 * 3)
    // 取整除 返回商的整数部分 4 // 3.0得到1.0
    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。短路计算在这里也适用。

    3、运算符优先级:

    运算符描述
    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,...' 字符串转换

    4、改变计算顺序:

    运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果要改变它们的计算顺序,可以使用圆括号。例如,要在一个表达式中让加法在乘法之前计算,那么就得写成类似(2 + 3) * 4。

    5、结合规律:

    运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算。例如,2 + 3 + 4被计算成(2 + 3) + 4。一些如赋值运算符那样的运算符是由右向左结合的,即a = b = c被处理为a = (b = c)

    6、表达式:

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    # Filename: expression.py
      
    length = 5
    breadth = 2
      
    area = length * breadth
    print('Area is', area)
    print('Perimeter is', 2 * (length + breadth))

    输出:

    C:UsersAdministrator>python D:pythonexpression.py 
    Area is 10 
    Perimeter is 14

    以上程序实现了求矩形的面积和周长

    我们注意到:尽管我们没有在'Area is'和变量area之间指定空格,Python自动在那里放了一个空格,这样我们就可以得到一个清晰漂亮的输出,而程序也变得更加易读(因为我们不需要担心输出之间的空格问题)。

  • 相关阅读:
    20172318 2017-2018-2 《程序设计与数据结构》实验5报告
    20172318 2017-2018-2 《程序设计与数据结构》实验4报告
    20172318 2017-2018-2 《程序设计与数据结构》第11周学习总结
    20172318 2017-2018-2 《程序设计与数据结构》实验3报告
    20172318 2017-2018-2 《程序设计与数据结构》第10周学习总结
    20172318 2017-2018-2 《程序设计与数据结构》第9周学习总结
    20172318 结对编程项目-四则运算 第二周 阶段总结
    20172318 2017-2018-2 《程序设计与数据结构》第8周学习总结
    20172318 结对编程项目-四则运算 第一周 阶段总结
    20172318 2017-2018-2 《程序设计与数据结构》实验2报告
  • 原文地址:https://www.cnblogs.com/kxgdby/p/7956500.html
Copyright © 2020-2023  润新知