Python学习第二天——《A Byte of Python》
今天主要学习的是Basics剩余部分、Operators and Expressions、Control flow。
Basics
继昨天后,基础内容学习了变量以及变量的命名规则,Python的变量没有C#复杂,不需要声明或定义数据类型,要求首字母必须大小写字母或者下划线_,其他可用大小写字母、下划线、数字,并且区分大小写。学习了数据类型对象概念,以及如何通过PyCharm写程序。
逻辑行和物理行:前者是计算机看到的,后者是我们看到所输入的,每一物理行都有相一致的逻辑行。Python里分号“;”(semicolon)表示一个分句,表明逻辑行的结束,但是作者大力推荐在每一个物理单行描述最大化的逻辑行,也就是永远不用分号。如果一行代码过长,可以分段成多行,用反斜线分割。当然也有隐性的行连接可不用反斜线,比如逻辑行是括号、方括号、花括号等开头时。
s='This is a string.\
This continues the string.'
print(s)
缩进(Indentation):行首用whitespace是重要的,包括空格键和tab键。不正确的缩进会导致程序出错,这些在控制流中会用的多。建议用4个空格或一个tab。
Operators and Expressions
1、operators
学习各种操作符包括:+(plus)、-(minus)、*(multiply)、**(power)、/(divide)、//(divide and floor)、%(modulo)、<<(left shift)、>>(right shift)、&(bit-wise AND)、|(bit-wise OR)、^(bit-wise XOR)、~(bit-wise invert)、<、>、<=、>=、==、!=、not、and、or
由于以前学过,这块理解还是容易的。记得以前被这些搞的头大了,尤其是二进制位移。
负数的二进制是反码加码。在不溢出的情况下,左移n位后的值等于原值乘以2的n次方。例如 4 <<2 就是16,二进制就是 00000100 <<00010000,-4<<2 就是-16 ,二进制就是 11111100 <<11110000。右移n位后的值等于原值除以2的n次方的商,例如 4 >>2 就是1,二进制就是 00000100 >>00000001,-4>>2 就是-1 ,二进制就是 11111100 <<11111111
另外“//”的用法要注意,返回的值是比商小的那个整数,因此13//3=4,-13//4=-5,不知道这个实际运用中有什么用处。
2、shortcut for math operation and assignment
var=var operation expression 就相当于 var operation=expression
例如:a=a*3 相当于 a*=3
3、Evaluation Order
计算顺序优先级,最好用括号等简单明了,但是不要redundant(多余的),同级计算从左到右。
Control Flow
Python里常用的有三个控制流,if、for、while,没有switch。以if语句为例:
if 条件:
执行语句
elif 条件:
执行语句
else:
执行语句
break用于跳出for或者while循环,其他块将不继续执行。
continue用于跳出剩余,重新执行循环。
感觉时间不够用,效率不够高。