Python 基础(起步二)

2019-02-13  本文已影响0人  Mark学编程

说明,以下是我翻译的Python官方免费英文材料的第二部分,这是个很好的入门读物。如果需要英文版,请到(Mark学编程QQ群下载,或留言与我联系索取)希望反馈意见,供修改中文翻译稿时参考。

运算符与表达式

你写的大多数语句(逻辑行)都包含表达式。比如, 2 + 3 就是一个简单的表达式。 表达式可以分解成运算符和操作数(英语是operator and operands, 拼法很对应,而约定俗称的翻译很一般,如果是运算符运算数,或者操作符操作数就好了,译者注)。运算符是有功能的,能够做些什么,并且能够用符号表示,比如 + 号;或者用特殊的关键字表示。运算符需要一些数据并对其操作,被操作的叫做操作数,上面的例子中 2 和 3 就是操作数。

运算符

我们简要介绍运算符及其用法

请注意,你可以对下面给出的例子中的表达式求值。使用互动编译器,比如,你用Python互动编辑器(或你自己顺手的编辑器)测试这个表达式 2 + 3。

2 + 3

5

3 * 5

15

下面是快速的各种运算符的概观:

加法 +

两个对象相加

3 + 5 得 8, ‘a’ + ‘b’ 得 ‘ab’

减法 -

-5.2 得 -5.2, 50 – 24 得 26 (减号前如果没有,你就默认是零)

乘法 *

2 * 5 得 6, ‘la’ * 3 得 ‘lalala’ (注意和加法区别)

平方 **

3**4 得 81 (333*3)

除法 /

13 / 3 得 4.333333333(看自己编辑器是多少位)

除法并且取整 //

13 // 3 得4,除法后去除小数部分。

-13 // 3 得 -5,(?为什么,你琢磨琢磨)

9 // 1.81 得 4.0

取余(modulo)

返回除后的余数

13 % 3 得1, -25.5 % 2.25 得1.5;

<< (left shift) (以下这些位计算,你看不懂,可以跳过,暂时没有什么卵用)我暂时不翻译,保留原样。

Shiftsthe bits of the number to the left by the number of bits specified. (Each number is represented in memory by bits or binary digits i.e. 0 and 1)

2 << 2 gives 8; 2 is represented by 10 in bits.

Left shifting by 2 bits gives 1000 which represents the decimal 8;

(right shift)

Shifts the bits of the number to the right by the number of bits specified.

11 >> 1 gives 5;

11 is represented in bits by 1011 which when right shifted by 1 bit gives 101 which is the decimal 5;

& (bit-wise AND) 等等这些玩意统统略去,免得打击学编码积极性,也没有什么卵用。

(小于)得出要么True 要么 False;注意首字母大写。

可以这么写 3 < 5 < 7 得出 True;

< (大于)

5 > 3 得出 True, 如果两个操作数都是数字,它们先转化成共同的类型,否则总是False,(请试验,另外><等都是英文状态下的符号,试试中文的,测试结果如何?–译者)

= <= 顾名思义

== (等于)

测试两个对象是否相等。

x = 2; y = 3; x == y 得 True

x = ‘str’; y = ‘stR’; x == y 得 False

x = ‘str’; y = ‘str’; x == y 得 True

!= (不等于)

不再举例(译者)

not(boolean NOT)

简单理解是取相反的boolean值,比如:

x = True; not x 得 False

and (boolean AND)

稍微解释一下,这是逻辑and,两个都是True的情况下得出True;其中一个为False,只能得出False。

or (boolean OR)

如果是两个,任意一个True 得出是True,只有两个都是False才得出False。(这个boolean的翻译,译者简化了解释,没有照原文翻译,你信不过译者,你就去看英文原文,译者不怪你)

简略数学运算符和赋值符

普遍的是,变量在数学运算后将结果赋值回这个变量,所以有了此类表达式的简便写法:

a = 2

a = a + 2

简略表示为

a += 2

同理

a *= 3

a -= 5

求值顺序

如果你有个这样的表达式 2 + 3 * 4;先做加法还是乘法?我们高中(原文如此,可以想象英语国家是何等惨?到了高中才学加减乘除顺序,我们可是小学就学的,当然是原作者发晕了)数学告诉我们先做乘法。这就意味着乘法运算符比加法运算符有着更高的优先权。

下面的图表展示了Python的优先性,(这里就不一一列举了,请参考英文原文,我大体说一下—译者注)

如果你吃不准谁优先,请用括号;

选择几个,从低到高的优先权

Lambda – 最低,还没有学,下面的也是,没有学的先参考着

If – else -条件表达式

In, not in, <, >等比较运算符

算数运算符

/ *等;

**:幂

X[ index]

(expression…), [expressions….]等等。

再次提醒,上面是节选,中间有不少。请参阅英语原版,或平时留意即可。

再次提醒括号的重要性,多用括号,当然也不要滥用。

结合性

运算符一般是从左到右的结合的,这意味着具有同等优先的运算符从左到右求值,比如: 2 + 3 + 4,先计算2 + 3 等于5,再计算 5 + 4 。

表达式

举例:

Length = 5

Breadth = 2

Area = length * breadth

print (‘Area is’, area)

print (‘Perimeter is’, 2 * (length + breadth))

输出:

Area is 10

Perimeteris14

说明:为激励大家亲自敲代码并测试运行,今后一般不再给出原文中的结果。

代码运行原理

三角形的长度和宽度存储在长度宽度的名字(绑定)的变量里,我们在表达式的(帮助下)使用变量名计算三角形的面积和直径,我们用变量area存储表达式(length * breadth)的(求值)结果, 然后用print函数打印。第二个例子,我们直接在print函数中使用表达式(2*(length+breadth))的值。

另外注意Python的良好打印习惯,我们没有具体指出‘Area is’ 和变量 area的空格,但Python自己这么做了,牛呀(比C语言牛多了—译者注),总之,Python让程序员的生活变简单了。

我们已经看了运算符,操作数和表达式,这些是所有程序的基本建筑材料,下一步,我们学习使用语句来让这些在程序中发挥作用。

上一篇下一篇

猜你喜欢

热点阅读