Python-Review复习(二)

下面是我这些日子翻译的基础Python资料(二),来自正宗的官方网上资料。英文版已经发送到了QQ群(Mark学编程),有需要的请入群下载。今天发布的仅仅是很基础的第二部分,希望得到你的反馈,是否通俗易懂?是否有帮助?等等。

不过,照例,小测试的参考答案和测试不会中断。

我擅自家里一个计数的count,想一想,为什么代码里面使用了str()和 int(),不用的话,会如何?试验一把吧。

今天的小测试题目如下:

Question13

Level2

Question:

Write aprogram that accepts a sentenceandcalculate the number of lettersanddigits.

Supposethe followinginputissupplied to the program:

hello world!123

Then,the output should be:

LETTERS10

DIGITS3

编写一程序,接收一句话并且计算单词所以的字母数量,还有单独数字的位数。看上面的例子,仿照着那个格式打印出来。

下面是今天翻译的基础资料第二部分

运算符与表达式

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

运算符

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

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

除法 /

除法并且取整 //

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

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

9 // 1.81得 4.0

取余(modulo)

返回除后的余数

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

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

2

Left shifting by 2 bits gives1000 which represents the decimal 8;

>> (right shift)

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

11 >> 1 gives 5;

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

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

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

可以这么写 3

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 (‘Perimeteris’, 2 * (length + breadth))

输出:

Area is 10

Perimeteris14

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

代码运行原理

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190211G0DWJR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券