美文网首页
Python 基础(起步二)

Python 基础(起步二)

作者: Mark学编程 | 来源:发表于2019-02-13 15:59 被阅读0次

    说明,以下是我翻译的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让程序员的生活变简单了。

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

    相关文章

      网友评论

          本文标题:Python 基础(起步二)

          本文链接:https://www.haomeiwen.com/subject/zyxreqtx.html