下面是我这些日子翻译的基础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让程序员的生活变简单了。
我们已经看了运算符,操作数和表达式,这些是所有程序的基本建筑材料,下一步,我们学习使用语句来让这些在程序中发挥作用。
领取专属 10元无门槛券
私享最新 技术干货