python基礎一

來源:互聯網
上載者:User

標籤:drop   openstack   相容   pypy   語言編程   www.   靜態類   rip   架構   

一 python介紹

    python的創始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·范羅蘇姆(中文名字:龜叔)為了在阿姆斯特丹打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承。  

(龜叔:2005年加入Google至2012年,2013年加入Dropbox直到現在,依然掌握著Python發展的核心方向,被稱為仁慈的獨裁者)。

 

目前Python主要應用領域:

  • 雲端運算: 雲端運算最火的語言, 典型應用OpenStack
  • WEB開發: 眾多優秀的WEB架構,眾多大型網站均為Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB架構有Django
  • 科學運算、人工智慧: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系統營運: 營運人員必備語言
  • 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測
  • 圖形GUI: PyQT, WxPython,TkInter

 

2 python是一門解釋型 弱類型的程式設計語言.

2.1 編譯型與解釋型。

編譯器是把來源程式的每一條語句都編譯成機器語言,並儲存成二進位檔案,這樣運行時電腦可以直接以機器語言來運行此程式,速度很快; 

解譯器則是只在執行程式時,才一條一條的解釋成機器語言給電腦來執行,所以運行速度是不如編譯後的程式啟動並執行快的. 

這是因為電腦不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進位的形式)

 

 

 

編譯型
優點:編譯器一般會有先行編譯的過程對代碼進行最佳化。因為編譯只做一次,運行時不需要編譯,所以編譯型語言的程式執行效率高。可以脫離語言環境獨立運行。
缺點:編譯之後如果需要修改就需要整個模組重新編譯。編譯的時候根據對應的運行環境產生機器碼,不同的作業系統之間移植就會有問題,需要根據啟動並執行作業系統環境編譯不同的可執行檔。

解釋型
優點:有良好的平台相容性,在任何環境中都可以運行,前提是安裝瞭解釋器(虛擬機器)。靈活,修改代碼的時候直接修改就可以,可以快速部署,不用停機維護。

缺點:每次啟動並執行時候都要解釋一遍,效能上不如編譯型語言。

2.2動態語言和靜態語言
通常我們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。

(1)動態類型語言:動態類型語言是指在運行期間才去做資料類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變數指定資料類型,該語言會在你第一次賦值給變數時,在內部將資料類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種指令碼語言如VBScript也多少屬於動態類型語言。

(2)靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的資料類型是在編譯其間檢查的,也就是說在寫程式時要聲明所有變數的資料類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。

2.3強型別定義語言和弱類型定義語言

(1)強型別定義語言:強制資料類型定義的語言。也就是說,一旦一個變數被指定了某個資料類型,如果不經過強制轉換,那麼它就永遠是這個資料類型了。舉個例子:如果你定義了一個整型變數a,那麼程式根本不可能將a當作字串類型處理。強型別定義語言是型別安全的語言。

(2)弱類型定義語言:資料類型可以被忽略的語言。它與強型別定義語言相反, 一個變數可以賦不同資料類型的值。

強型別定義語言在速度上可能略遜色於弱類型定義語言,但是強型別定義語言帶來的嚴謹效能夠有效避免許多錯誤。另外,“這門語言是不是動態語言”與“這門語言是否型別安全”之間是完全沒有聯絡的!
例如:Python是動態語言,是強型別定義語言(型別安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強型別定義語言(型別安全的語言)。

通過上面這些介紹,我們可以得出,python是一門動態解釋性的強型別定義語言。

 

3 python的種類

 

CPython

當我們從Python官方網站下載並安裝好Python 3.6後,我們就直接獲得了一個官方版本的解譯器:CPython。這個解譯器是用C語言開發的,所以叫CPython。在命令列下運行python就是啟動CPython解譯器。

CPython是使用最廣的Python解譯器。教程的所有代碼也都在CPython下執行。

IPython

IPython是基於CPython之上的一個互動式解譯器,也就是說,IPython只是在互動方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但核心其實都是調用了IE。

CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。

PyPy

PyPy是另一個Python解譯器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),所以可以顯著提高Python代碼的執行速度。

絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解譯器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要瞭解PyPy和CPython的不同點。

Jython

Jython是運行在Java平台上的Python解譯器,可以直接把Python代碼編譯成Java位元組碼執行。

IronPython

IronPython和Jython類似,只不過IronPython是運行在微軟.Net平台上的Python解譯器,可以直接把Python代碼編譯成.Net的位元組碼。

小結:

  Python的解譯器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平台互動,最好的辦法不是用Jython或IronPython,而是通過網路調用來互動,確保各程式之間的獨立性。

 

4 單行注釋和多行注釋

當行注釋:# 被注釋內容,‘注釋內容‘  , “注釋內容”

多行注釋:‘‘‘被注釋內容‘‘‘,或者"""被注釋內容"""

 

5 變數

變數是什嗎?  變數:把程式啟動並執行中間結果臨時的存在記憶體裡,以便後續的代碼調用。

5.1、聲明變數

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3   4 name = "zhh"

上述代碼聲明了一個變數,變數名為: name,變數name的值為:"zhh"

變數的作用:暱稱,其代指記憶體裡某個地址中儲存的內容

 

變數的命名規範

1 變數由字母,數字,底線搭配組合而成
2 不可以用數字開頭,更不能是全數字
3 不能是python的關鍵字,這些符號和字母已經被python佔用,不可以更改

如:

[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
4 不要用中文
5 名字要有意義
6 不要太長
7 區分大小寫
推薦大家使用駝峰體或者底線命名
駝峰體:除首字母外的其他每個單字首大寫
底線:每個單詞直接用底線分開

推薦定義方式 駝峰體或底線

#駝峰體AgeOfZhh = 20NumberOfStudents = 80#底線age_of_students = 56number_of_students = 80
View Code

2. 變數的資料類型:

         ①.int 整數:+,-,*,/,%(計算餘數),//(整除)

         ②.str 字串:‘,"",‘‘‘,"""括起來的內容(注意:引號使用同一種在一個字串中.)

                字串可以進行+,*.

           ‘+‘表示字串之間的拼接          ‘*‘表示相乘,字串的內容的倍數.

         ③.bool 布爾值.只有真或者假,True和False.

 

 

 

 

3. 變數的賦值

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3 4 name1 = "zhh"5 name2 = "zhangqiang"

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3 4 name1 = "zhh"5 name2 = name1

 

定義變數不好的方式舉例

  • 變數名為中文、拼音
  • 變數名過長
  • 變數名詞不達意

6使用者程式互動

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3   4 # 將使用者輸入的內容賦值給 name 變數5 name = input("請輸入使用者名稱:")6   7 # 列印輸入的內容8 print(name)

 將字串轉化成整數:str => int =>int(str)     例如

#讓使用者輸入a,讓使用者輸入b,電腦計算a+b的結果a = input("請輸入a:")    #input收到的內容為strb = input("請輸入b:")    #將字串轉變成整數   int(字串)c = int(a) + int(b)print(c)

字串拼接

字串可以進行"相加"和"相乘"運算。就是字串的拼接 和字串重複

>>> name‘zhh‘>>> age‘22‘>>> >>> name + age  #相加其實就是簡單拼接‘zhh22‘>>> >>> name * 5 #相乘其實就是複製自己多少次,再拼接在一起‘zhhzhhzhhzhhzhhzhh‘

 

7  流程式控制制語句 if

1.文法一:

       if 條件:                 #引號是將條件和結果分開

            結果1.             #四個空格,或者一個tab鍵,告訴程式滿足這個條件

        結果2

     如果條件是真(True)執行結果1,然後結果2,如果條件假(False)直接結果2

   2.文法二:

       if 條件:

            結果1

        else:

             結果2

         代碼3  

print("咣咣咣,誰呀")gender = input("請問是男是女?")if gender == ‘男‘:    print("請找隔壁")else:     print("進來吧")

 == 表示判斷   = 表示賦值

3.文法三:

        if 條件1:

             結果1

         elif條件2:

              結果2

          ........

          else:

               結果n

例如

month = input("請輸入一個月份")if month == ‘一月‘:    print("吃香蕉")elif month == ‘二月‘:    print("吃蘋果")elif month == ‘三月‘:    print("吃蛋糕")elif month ==‘四月‘:    print("吃葡萄")..........else:    print("愛吃嘛吃嘛")

 

4.語句四--嵌套

        if 條件1: 

           結果1

            if 條件2:

                 結果2

             else:

                  結果3

         else:

              結果4

print("咣咣咣, 誰呀? ")gender = input("請問, 你是男的還是女的?")if gender == ‘男‘:    # pass #  pass 過. 表示文法的完整性    print("男的去隔壁.")else:   # 不是男的    age = input("今年貴庚了?")    if int(age) > 48: # input接收的是字串. 48是int. 這兩個資料類型是不能比較的        print("大媽, 您找誰?, 可能在隔壁")    else:        print("我家的瓜, 特別甜.")

 

python基礎一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.