为了防止像当初学爪哇一样,几种语言在脑中疯狂打架,我觉得从语言差异出发整理一篇笔记,对我这种没有深入学习python的想法、脑中还全是c的语法的人是有用的。
本笔记主要整理自《写给程序员的Python教程》,并根据我的语言习惯摘要、重述。
注意两种语言注释符号的不同。
//c注释
#python注释
#include "..." #include "..." //c风格
import ... #python风格
\(\rm Python\)使用import
导入标准库模块。这些标准库通常被称为 battery included(内置电池)。标准库被构建为 module(模块)。
import math if __name__ == '__main__': #即c中的main() print(math.sqrt(16)) #即c中的printf()
import math if __name__ == '__main__': print(math.factorial(5))
然而,函数名过长往往使代码冗长。为此,\(\rm Python\)提供了from...import...as...
语法,如以下这个冗长的句子
import math if __name__ == '__main__': print(math.factorial(5)*math.factorial(6)*math.factorial(7))
用from...import...
可以写成:
from math import factorial #将特定函数导入当前命名空间 if __name__ == '__main__': print(factorial(5)*factorial(6)*factorial(7))
用from...import...as...
可以写成:
from math import factorial as fac #将特定函数导入当前命名空间,并重命名(一般是缩短名字) if __name__ == '__main__': print(fac(5)*fac(6)*fac(7))
基本是互通的,如int
、float
、bool
。
不过\(\rm Python\)提供了一些方便的转换,如字符串转换成整数:int("123")
可以将字符串”123“转换为整数123。
另外,在\(\rm Python\)中,某些字符串传递给负点构造函数,可以创建特殊浮点值:float("nan")
:创建NAN,float("inf")
:创建正无穷,float("-inf")
:创建负无穷。
\(\rm Python\)有一个名为None
的特殊空值,用于表示缺少,可以理解为更泛用的\(\rm NULL\)
直接上代码,比较容易理解。
//C if(true){ printf("一定执行"); } if(false){ printf("不会执行"); }
#Python if True: print("一定执行") if False: print("不会执行")
//C int a=1; if(a==1){ printf("Yes!"); } else{ printf("No!"); }
#Python a=1 if a==1: print("Yes!") else: print("No!")
#Python a=100 if a<10: print("a<10") elif a<50: print("10<=a<50") else: print("a>=50") #输出:a>=50
\(\rm Python\) 与 \(C\) 的while
和break
的使用基本一致。只需要注意用合理的缩进代替大括号即可。