第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))

输出

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

A Byte of Python 笔记(3)运算符和表达式的更多相关文章

  1. 吾八哥学Python(六):运算符与表达式

    上篇简单学习了数学运算符,今天来学习下完整的Python运算符与表达式,具体看下面的表格吧! 表1 运算符与它们的用法 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8.’a’ + ‘ ...

  2. python中的运算符及表达式及常用内置函数

    知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数 ...

  3. Python中的运算符与表达式

    你所编写的大多数语句(逻辑行)都包含了表达式(Expressions).一个表达式的简单例子便是 2+3.表达式可以拆分成运算符(Operators)与操作数(Operands).运算符(Operat ...

  4. c语言笔记3运算符与表达式

    运算符与表达式 知识点一 操作数:参与运算的具体对象. 运算符:指明了对操作数进行的某项运算. 表达式:表示一个求值得规则.它由变量.常量.运算符和函数.括号按一定规则组成. 书写表达式的细节:1,运 ...

  5. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容

    第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...

  6. A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列

    第9章 数据结构 数据结构,即可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python 有三种内建的数据结构--列表.元组和字典. list = ['item1', 'item2' ...

  7. A Byte of Python 笔记(11)异常:try..except、try..finally

    第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...

  8. A Byte of Python 笔记(10)输入/输出:文件和储存器

    第12章  输入/输出 大多数情况下,我们需要程序与用户交互.从用户得到输入,然后打印一些结果. 可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,可以使用多种多样的 s ...

  9. A Byte of Python 笔记(9) 面向对象编程

    第11章  面向对象编程 面向过程:根据操作数据的函数或语句块来设计程序. 面向对象(OOP, object-oriented programming):把数据和功能结合起来,用对象包裹组织程序. 类 ...

随机推荐

  1. 获取电脑cpu的使用情况

    using System; using System.Diagnostics; namespace ConsoleApplication1 { class Program { static void ...

  2. mysql中,执行delete语句时出现Lock wait timeout exceeded问题

    问题描述: 当我插入一条记录时,在调用save方法的时候出现了异常(记录重复了),导致了后面的commit语句不能执行了.这时我在数据库中删除重复记录时发现该表已经被锁上了.即出现错误.但过了一会再次 ...

  3. PHP学习笔记,自己动手写个MVC的框架 -- base所有代码

    <?php /** 名称:基础类 作用:引用参数处理类,加载基础配置, 作者:swordphp@126.com 创建日期:2013-07-31 **/ require_once(ROOT_PAT ...

  4. 2014第7周三初识CouchBase

    今天主要还是完善需求,然后提交评审流程,尽可能不纠结一些细节问题后发现自己速度更快了,或许这才是最好的顺序,其它可能的问题就留在后续发现并解决吧.今天第一次听到并重视下couchbase.上午看到同事 ...

  5. Android学习之SharedPreferences类

    SharedPreferences类 android.content.SharedPreferences 类概括: 访问和修改由函数getSharedPreferences(String,int)返回 ...

  6. Longest Substring Without Repeating Characters 最长不重复子串

    只遍历一次字符串即可求出最长不重复子串的长度. int lengthOfLongestSubstring(string s) { vector<,-); //记录字符上一次出现的位置,ASCII ...

  7. ASP.NETURL地址防注入过滤问题

    首先在Global.asax.cs里面配置一个 提交事件  不用过滤所有的地址 过滤 GET POST的地址就行了 /// <summary> /// 防止sql注入 /// </s ...

  8. c++冒泡排序的模板函数设计

    说明 由于课程设计需要,特编写本程序.本程序首先定义了一个冒泡程序的模板函数,然后在main()函数中定义了两个不同类型的数组,调用模板函数对其进行排序.(注意,本程序是在linux下编写,但是直接拷 ...

  9. 在SQL Server中如何快速查找DBCC命令和语法?

    DBCC命令非常好用,但是命令很多语法就很多,如何快速记忆呢?是否都要背下来.其实不用,只要能知道每个命令的作用并且记住DBCC HELP命令就可以了. --查找所有的DBCC命令 DBCC  HEL ...

  10. 使用ObjectAnimator开发打开、关闭书本动画

    动画效果 动画效果-分享链接 (想做成gif图的,尝试各种工具无果) ObjectAnimator简单介绍及实现思路 ObjectAnimator是从api level 11 (Android3.0x ...