天天看點

建議3---了解Python與C語言的不同之處

  我們都知道,Python的底層是用C語言實作的,但切忌用C語言的思維和風格來編寫Python代碼。Python與其他語言有很多不同,以下來進行簡單的分析:

  (1)"縮進"與“{}”

    與C,C++,Java等語言使用花括号{}來分割代碼段不同,Python中使用的代碼縮進方式分割代碼塊。

  (2)‘與“

    C語言中單引号(')與雙引号(")有嚴格的差別,單引号代表一個字元,它實際對應于編譯器所采用的的字元集中的一個整數值。例如在ASCII中,'a'與數字97相對應。而雙引号則表示字元串,預設以'\0'結尾。

  但在python中,單引号和雙引号沒有明顯差別,僅僅在輸入字元串内容不同時,在使用上存在微小差異。

>>> string1 = "He said ,\"Hello\" "     #字元串中本身的雙引号需要轉義
>>> string1
'He said ,"Hello" '
>>> string2 = 'He said ,"Hello" '        #字元串本身的雙引号不需要轉義
>>> string2
'He said ,"Hello" '      

  (3) 三元操作運算符“?:”

  三元操作符是if...else的簡寫方法,文法形式為C?X:Y,它表示當條件C位True的時候取值為C,C為False的時候取值為Y。C?X:Y在Python中的等價形式為X if C else Y,即:

  

>>> X = 0
>>> Y = -2
>>> print(X if X<Y else Y)
-2      

  (4)switch...case

  Python中沒有像C語言那樣的switch...case分支語句,不過Python有很多替代的方法。假設C語言實作的seitch...case語句如下:

switch(n){
  case 0: 
    printf("zero.\n");
    break;
  case1:                    
    printf("one.\n");
    break;  
  case2:
    printf("two\n");
    break;  
  default:
    printf("others");
    break;        
}      

  與以上C語言中switch...case對應的Python實作如下:

if n ==0 :
    print("zero.\n")
elif n==1:
    print("one.\n")
elif n==2:
    print("two.\n")
else:
    print("others")      

  或者使用字典來實作:

def f(x):
    return {
        o : "zero.\n",
        1 : "one.\n",
        2 : "two.\n"
        }.get(n,"others")      

以上隻是簡單的列舉了幾個Python和其他語言的不同點,事實上,其差異性遠不止這些。

  

轉載于:https://www.cnblogs.com/xiaoshayu520ly/p/10493190.html