Python底层是用C语言实现的,但切忌用C语言的思维和风格来编写 Python代码。 对于那些在学习Python之前有其他编程语言(如Java、C#等)经验的程序员 来说, 尤其重要的是:不要使用之前的编程思想。 Python与它们有很多不同,以下从语法方面来进行简单分析。
“缩进”与 {}
与C、C++、Java等语言使用花括号{}
来分隔代码段不同,Python中使用严格的代码缩进方式分隔代码块,
空格或者Tab键不再随便使用了,
对于 Python解释器而言,它们直接关乎代码的语法和逻辑,一不小心就会出现 unexpected indent
错误。
Python的这一特点也引起不少争议,强制代码缩进就像一把双刃剑,有利有弊,
对于从其他编程语言转过来学习Python的人来说,也许需要一段时间去适应。
但不可否认,严格的缩进确实能让代码更加规范、整齐,可读性和可维护性都会更髙。
避免缩进带来的闲扰的方法之一就是养成良好的习惯,统一缩进风格,不要混用Tab键和空格。
'
与 "
C语言中中引号 '
与双引号 "
有严格的区别,单引号代表一个字符,
它实际对应于编译器所采用的字符集中的一个整数值,例如在ASCII码中,'a'
与 97
相对应。
而双引号则表示字符串,默认以'\0'
结尾。
但在Python中,单引号与双引号没有明显区別,仅仅在输入字符串内容不同时,在使用上存在微小差异。
stringl = "He said \"Hello\""#字符串中本身的双引号策要转义
stringl
'He said "Hello"'
string2 = 'He said,"Hello"' #字符亊本身的双引号不需要转义
string2
'He said,"Hello"'
x=0
Y=-2
x if x<Y else Y
-2
switch (n){
case 0:
printf ("You typed zero \n");
break;
case 1:
printf("You are in top.\n");
break;
case 2:
printf("n is an even number\n");
default:
printf("Only single-digit numbers are allowed\n");
break;
}
与以上C语言中 switch... case
对应的Python实现如下:
n=8
if n == 0:
print( "You typed zero.\n")
elif n== 1:
print ("You are in top.\n" )
elif n==2:
print ("n is an even number\n")
else:
print( "only single-digit numbers are allowed\n")
only single-digit numbers are allowed
或者使用以下跳转表来实现:
def f(x):
return {
0: "You typed zero.\n",
1: "You are in top.\n",
2: "n is an even number\n"
}.get(n,"Only single-digit numbers are allowed\n")
以上只是简单列举了几个Python和其他语言的不同点,事实上,其差异性远远不止这些。 但总归一句话:不要被其他语言的思维和习惯困扰,掌握Python的哲学和思维方式才是硬道理。 正如前面所说,要舍得抛弃具有自我风格的代码,尽量遵循 Pythonic 代码的编码规范和风格。