快速起步

快速起步

準(zhǔn)備

C++是編譯型語言革半,編寫完代碼需要編譯然后運行,而Python是解釋型語言洼怔,可以直接運行署惯;簡單起見,可以在以下兩個網(wǎng)頁進行對比學(xué)習(xí):C++在線編譯運行镣隶;Python3在線運行极谊。

Hello,World!

  • C++
    #include <cstdio>
    
    int main(){
        printf("Hello,Cpp!");
    }
    
  • Python
    print('Hello,Python!')
    

在C++中诡右,代表語句的結(jié)束轻猖,而{}則用來包裹代碼段帆吻,在Python中,換行即可代表語句的結(jié)束咙边,開始的縮進是用來包裹不同的代碼段的猜煮,示例如下:

  • C++
    if(true){
        printf("at first branch!\n");
        printf("at first branch!\n");
    }
    else {
        printf("at second branch!\n");
        printf("at second branch!\n"); 
    }
    
    printf("Finish!");
    
  • Python
    if True:
        print('at first branch!')
        print('at first branch!')
    else:
        print('at second branch!')
        print('at second branch!')
        
    print('Finish!')
    

注釋

  • 單行注釋

    • C++ 中單行注釋以//開始,以\n結(jié)束;
    • Python 中單行注釋以#開始,以\n結(jié)束败许;
  • 多行注釋

    • C++ 中多行注釋以/*開始王带,以*/結(jié)束;
    • Python 中多行注釋以'''開始和結(jié)束檐束;

基礎(chǔ)類型

Python與C++在類型上不同之處在于C++是靜態(tài)類型辫秧,Python是動態(tài)類型,簡單來講就是被丧,C++常量盟戏、變量聲明都需要指定其是何類型,Python則不需要甥桂。

  • 布爾類型

    //C++
    bool bVal = true;
    bVal = false;
    
    #Python
    bVal = True
    bVal = False
    
  • 整數(shù)類型

    C++中的整數(shù)類型比較多柿究,支持8、16黄选、32蝇摸、64位有符號無符號整型的聲明與操作。

    //C++
    int nVal = 10;
    long long llVal = 10ll;
    ...
    

    Python中并沒有這么多區(qū)分:

    #Python
    nVal = 10
    
  • 浮點類型

    C++中有單精度浮點數(shù)float和雙精度浮點數(shù)double办陷,其中float的字面量需要綴f貌夕。

    //C++
    float fVal = 10.0f;
    double dVal = 10.0;
    

    Python中沒有單精度浮點數(shù):

    #Python
    fVal = 10.0
    dVal = 10.0
    
  • 字符串

    C++中的字符串有兩種,一種是字面量民镜,另一種是字符數(shù)組啡专,行為特征為以\0結(jié)尾的字符數(shù)組,字面量為常量內(nèi)容無法進行修改制圈,而字符串?dāng)?shù)組如果不是聲明為常量是可以進行修改的们童。

    //C++ 
    static const char* strVal = "this is a string"; 
    char strVal1[20]  = {"this is a string"};
    

    Python中的字符串聲明是常量,無法修改鲸鹦。

    #Python
    strVal = 'this is a string'
    
  • 列表

    C++中有array慧库、vectorlist等來表示一組元素馋嗜,其中array內(nèi)存連續(xù)齐板,大小不變;vector內(nèi)存連續(xù),大小動態(tài)生長覆积。

    而Python中的列表操作起來像是vector,聲明類似于數(shù)組:

    #Python
    squares = [1,4,9,16,25] #聲明
    item = squares[0] #元素訪問
    squares[1] = 5 #修改元素
    squares.append(36) #追加元素
    len(squares) #獲取長度
    ...
    

流程控制

  • 分支if/else

    C++中的分支操作為if听皿、else ifelse宽档,分別對應(yīng)Python中的if尉姨、elifelse:

    //C++
    int x = 0;
    if(x < 0){
        //分支1
    }
    else if(x == 0){
        //分支2
    }
    else if(x == 1){
        //分支3
    }
    else {
        //分支4
    }
    
    #Python
    x = int(0)
    if x < 0:
        #分支1
    elif x==0:
        #分支2
    elif x==1:
        #分支3
    else:
        #分支4
    
  • 循環(huán)

    C++中循環(huán)的一種寫法為for(初始操作;循環(huán)條件;中間處理),而Python中對應(yīng)循環(huán)的寫法為for 值 in 可迭代對象:;還有C++中的while(循環(huán)條件)吗冤,Python中對應(yīng)寫法為while 條件::

    //C++
    for(auto i = 0 ; i < 10 ; i ++){
        printf("%d",i);
    }
    
    int i = 0;
    while( i < 10) {
        printf("%d",i);
        i++;
    }
    
    #Python
    numbers = [0,1,2,3,4,5,6,7,8]
    for i in numbers:
        print(i)
    
    i = 0
    while i < 10:
        print(i)
        i = i+1
    
  • 跳轉(zhuǎn)

    C++中可以使用break來跳出本次循環(huán),使用continue來直接執(zhí)行循環(huán)中的下一次操作又厉,在Python中使用方法一樣,不一樣之處在于可以使用else來在循環(huán)判定條件不滿足時執(zhí)行相應(yīng)操作椎瘟。

    //C++
    for(auto n = 2; n < 10; n++ ){
        bool bVal = false;
        for(auto x = 2; x < n ; x++){
            if(n %x == 0){
                printf("%d equals %d*%d\n",n,x,n/x);
                bVal = true;
                break;
            }
        }
        if(!bVal)
            printf("%d is a prime number\n",n);
    }
    
    #Python
    for n in range(2,10):
        for x in range(2,n):
            if n % x == 0:
                print(n,'equal',x,'*',n//x);
                break
        else:
            print(n,'is a prime number')
    

標(biāo)準(zhǔn)輸入輸出

  • 標(biāo)準(zhǔn)輸出

    C中標(biāo)準(zhǔn)輸出指的是stdout覆致,即命令行輸出,還有stderr是錯誤信息的輸出流,有相關(guān)的函數(shù)族來完成相應(yīng)操作:

    //C
    putchar('\n');//無格式輸出
    printf("%d",10);//格式化輸出
    printf("%s is %d","the value ",100);//可變參數(shù)輸入
    

    C++中對標(biāo)準(zhǔn)輸出的定義為std::cout:

    std::cout<<'\n';
    std::cout<<10;
    std::cout<<"the value is "<<100;
    

    Python中使用print向標(biāo)準(zhǔn)輸出輸出信息:

    #Python
    print()
    print(10)
    print('the value is',100)
    
  • 標(biāo)準(zhǔn)輸入

    C中標(biāo)準(zhǔn)輸入指的是stdin,從命令行接收輸入信息:

    //C
    auto ch = getchar();
    int nVal = 0;
    scanf("%d",&nVal);
    

    C++中對標(biāo)準(zhǔn)輸出定義為std::cin:

    //C++
    int nVal = 0;
    std::cin>>nVal;
    

    Python中使用input來從命令行接收輸入信息:

    #Python
    strVal = input()
    nVal = int(input('Please enter an integer:')) 
    

函數(shù)

C++中函數(shù)聲明一般在頭文件中供別的模塊使用肺蔚,然后在源文件中實現(xiàn)煌妈,譬如計算斐波那契數(shù)列的函數(shù):

```
//C++

//fibonacci.h
int fibonacci(int nVal);
//fibonacci.cpp
int fibonacci(int nVal){
    assert(nVal >= 0);
    if(nVal == 0)
        return 0;
    if(nVal == 1)
        return 1;
    return fibonacci(nVal-1)+fibonacci(nVal-2);
}
//demo.cpp
#include "fibonacci.h"
int main(){
    auto nVal = fibonacci(10);
    return 0;
}

```

在Python中函數(shù)聲明及實現(xiàn)如下:

```
#Python
#fib.py
def fib(n):
    a,b = 0,1
    while a<n:
        a,b = b,a+b
    return b

#當(dāng)前文件使用
fib(10)
#其它文件使用
from  fib import fib
fib(10)

```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宣羊,隨后出現(xiàn)的幾起案子璧诵,更是在濱河造成了極大的恐慌,老刑警劉巖仇冯,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件之宿,死亡現(xiàn)場離奇詭異,居然都是意外死亡苛坚,警方通過查閱死者的電腦和手機比被,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泼舱,“玉大人等缀,你說我怎么就攤上這事〗筷迹” “怎么了尺迂?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涯贞。 經(jīng)常有香客問我枪狂,道長危喉,這世上最難降的妖魔是什么宋渔? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮辜限,結(jié)果婚禮上皇拣,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好氧急,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布颗胡。 她就那樣靜靜地躺著,像睡著了一般吩坝。 火紅的嫁衣襯著肌膚如雪毒姨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天钉寝,我揣著相機與錄音弧呐,去河邊找鬼。 笑死嵌纲,一個胖子當(dāng)著我的面吹牛俘枫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逮走,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼鸠蚪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了师溅?” 一聲冷哼從身側(cè)響起茅信,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎险胰,沒想到半個月后汹押,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡起便,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年棚贾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榆综。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡妙痹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鼻疮,到底是詐尸還是另有隱情怯伊,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布判沟,位于F島的核電站耿芹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏挪哄。R本人自食惡果不足惜吧秕,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迹炼。 院中可真熱鬧砸彬,春花似錦颠毙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至增蹭,卻和暖如春滴某,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滋迈。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工壮池, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杀怠。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓椰憋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赔退。 傳聞我的和親對象是個殘疾皇子橙依,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容