基于兴趣或好玩,开始学习python。我一向使用C系语言,接触python并未觉得太生硬,很多地方有很多相通的地方,学习记录如下:
1.转义字符,譬如\t,\r,\n之类,如果想表达非转义的语义,需要使用r或者R这个修饰符,比如print r"Hello\tWorld",这将打印出Hello\tWorld,而不是HelloWorld.另外还有u或者U用以表示Unicode编码的字面量
2.自动垃圾回收。。。对于C系语言的程序员来说还是比较不适应的。。。
3.变量无类型(不知道这么说妥当不妥当),对于C系程序员来说也是很不适应.....
4.没有++,--这样的便利操作符
5.一个编码时的思想问题,写C或者C++或者OC之类的代码时,总会各种CPU,内存,系统之间的权衡在脑子里闪过,但python中就没必要了,因为你要干成一件事,在python中只有一种方法。比如,我要给i自增1,在C/C++中我有很多选择,i += 1;i = i+1;i++;++i;....在基于不会影响逻辑对错的情况下,我就会选择++ i了,因为它会少进行一次内存的寻址操作(在编译器不参与优化的情况下),但python中就只有i = i + 1或者i += 1;
6.有一个**的运算符,计算幂的,在C/C++中是叫pow的标准库的函数。
7./与//,/与C系语言相同,比较有意思的是//这个操作符,他的说明是“返回商的整数部分”。比如4//3.0,将得到1.0.
8.一切皆对象。。。c语言中就不说了,但C++中也还是值得论道一下,C++中,术语对象一般只代表类的实例化,按照侯捷先生所说,叫“实例”,一般来说我们并不会将C++中的内置数据类型的实例称作对象。
9.没有switch语句,else if简写为elif。
10.while有可选的else语句。如果循环被break打断,这个else将不会执行。
11.有一个神奇的for。。in。。语句,与之搭配的通常range产生的序列。range实际上返回一个序列,range(1,5,2),其中1是序列起始值,5是序列(不对,不是终止值)第一个不能到达的数,2是步长。即range(1,5,2)将返回一个序列:[1,3],注意,没有5,for循环有一个可选的else分支。如果循环被break打断,这个else将不会执行。