python學習之基礎篇1(持續更新)

Python

語言介紹: 

編譯型語言和解釋型語言:

編譯語言:經過編譯器一次把全部的代碼轉換爲機器語言,而後寫成可執行文件html

解釋語言:在程序運行的前一刻,還只有源程序而沒有可執行程序;當程序沒執行到源程序的某一條指令,則會有一個稱之爲解釋程序的外殼程序將源代碼轉換爲二進制代碼以供執行,就是不斷的解釋執行、解釋執行…..解釋語言是離不開解釋程序的python

編譯語言程序執行速度塊,同等條件下對系統要求較低,開發操做系統、大型應用程序、數據庫系統等都採用它。解釋語言由於不須要複雜的編譯連接過程,因此使用它修改和調試很是方便,並且因爲程序老是以源代碼的形式出現,所以只要有相應的解釋器,移植幾乎不成問題。編譯語言雖然也能夠移植,可是前提是必須針對不一樣的系統分別進行編譯,甚至可能會修改代碼,這個耗時很是高的。linux

 

 動態語言和靜態語言:

動態類型語言:動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說在用動態語言編程時,永遠也不用給任何變量指定數據類型,改語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。c++

靜態類型語言:它的數據類型實在編譯期間檢查的,也就是說在寫程序時要聲明全部變量的數據類型。數據庫

 

強類型定義語言和弱類型定義語言:

強類型定義語言:強制數據類型定義的語言。一旦一個變量被制定了某個數據類型,若是不通過強制裝換,那它永遠就是這個數據類型。編程

弱類型定義語言:數據類型可被忽略的語言。一個變量能夠賦不一樣數據類型的值。編輯器

強類型定義語言在速度上可能略遜色於弱類型定義語言,可是強類型定義語言帶來的嚴謹性可以有效的避免許多錯誤。ide

 

Python是一門動態解釋型的強類型定義語言。性能

 

python的優缺點:

優勢:

1.python的定位是「優雅」、「明確」、「簡單」,看上去通俗易懂。編碼

2.開發效率高,Python有很是強大的第三方庫,基本上能實現你所想實現的絕大部分東西。

3.高級語言:不須要考慮如何管理你的程序使用內存一類的底層細節。

4。可移植性:若是你當心的避免使用依賴系統的特性,那麼你的python程序無需修改就幾乎能夠在市場上的全部平臺運行。

5.可擴展性:可使用c或c++編寫。

6.可嵌入性:能夠嵌入c/c++程序,提供腳本功能。

 

缺點:

1.速度慢

2.代碼不能加密:源碼是以明文的形式存在的

3.線程不能利用多CUP

 

python代碼配置

1.

 申明解釋器兩種寫法,使你的文件變成可執行程序(可執行文件在linux上能夠直接使用 ./pythonFile.py執行,可是須要權限chmod 755 pythonFile.py)

 

 #!/usr/bin/python 

表示寫死了就是要 /usr/bin/python 這個目錄下 python 來執行你的腳本。這樣寫程序的可移植性就差了,若是此路徑下python命令不存在就會報錯。並且你本身裝的其餘版本python,這個python默認是裝到了/usr/local/bin目錄下,這麼寫你就用不到你本身的版本了,用的系統默認的python版本。
 
 #!/usr/bin/env python 

這種寫法在你機器上安裝了多個版本的python的時候有意義,這樣聲明的時候,會去取你機器的 PATH 中指定的第一個 python 來執行你的腳本。若是這時候你又配置了虛擬環境的話,那麼這樣寫能夠保證腳本會使用你虛擬環境中的 python 來執行


2.

 聲明編碼格式:

  # ٩(๑>◡<๑)۶ coding:utf-8 ٩(๑>◡<๑)۶ 

 python寫法比較自由,這個隨便怎麼寫,只要符合捕捉正則就行:

  coding[:=]\s*([-\w.]+) 

 固然頂頭是要加#的,而後系統開始捕捉coding關鍵詞,coding前面你寫啥都沒關係,不要捕捉的。從捕捉coding開始,後面的就得按照正則來寫了,[:=] 意思是coding後面得跟冒號或者等號,\s* 意思是跟若干個可選空格, 而後讀取後面的任何單詞,破折號或點字符做爲編解碼器。

 

代碼編輯器我用的PyCharm,去官網下載。

 

語法

 變量的申明就不說了,命名規則全部語言基本差很少,這個是動態類型命名 

  name = "python" name = 'python'  

 單引號、雙引號均可以

 python沒用常量這個概念。若是非要定義一個常量,命名大寫表示常量,但其實它仍是個變量。

  NAME = "python" 

字符串拼接:

name = "ww" age = "22" job = "python"

print("my name is " + name) print("my name is" , name) info1 = ''' -----info1 of '''+name+'''---- name:'''+name+''' age:'''+age+''' job:'''+job+'''
'''
#建議不要用,空間使用率比其餘的高
print(info1) info2 = ''' -----info2 of %s---- name:%s age:%s job:%s '''%(name,name,age,job) print(info2) info3 = ''' -----info3 of {_name}---- name:{_name} age:{_age} job:{_job} '''.format(_name=name,_age=age,_job=job) print(info3) info4 = ''' -----info4 of {0}---- name:{0} age:{1} job:{2} '''.format(name,age,job) print(info4)

 

if判斷:

if userName == "ww" and passWord == "123": print("login success") else: print('error')

 

while循環

age_of_ww = 24 count = 0 while count<3: guess_age = int(input("guess_age:"))#input接收的都是字符串類型

    if guess_age == age_of_ww: print("you got it") break
    elif guess_age > age_of_ww: print("think smaller....") else: print("think bigger....") count+=1
else: print("you have tride too many times..")#while循環正常結束後會走這裏

 

for循環

 

for i in range(10): print(i) #打印:0,1,2,3,4,5,6,7,8,9

for i in range(0,10,2):#2爲步長,步長默認1
    print(i) #打印:0,2,4,6,8

for i in range(0,10):#步長默認1
    print(i) #打印:0,1,2,3,4,5,6,7,8,9

for i in range(0,10,3): print(i) #打印:0,3,6,9
 age_of_ww = 24

for i in range(3): guess_age = int(input("guess_age:")) if guess_age == age_of_ww: print("you got it") break
    elif guess_age > age_of_ww: print("think smaller....") else: print("think bigger....") else: print("you have tride too many times..")#for循環正常結束走這裏

 

 

拓展:

字符編碼集發展史:

—>ASCII 255 1bytes

—>須要表示中文  1980 GB2312 7000+漢子

—>1995年 GBK1.0 2W+漢子

—>2000年 GB18030  27000+

—>國際標準組織 unicode 全部都存2bytes 英文存儲變大了

—>utf-8  英文存1bytes 中文存3bytes

  

Python2默認編碼集是ASCII,若是須要使用中文須要申明utf-8編碼集:# coding:utf-8

Python3默認編碼集是utf-8

 

原文出處:https://www.cnblogs.com/weiwei-dreams/p/10998814.html

相關文章
相關標籤/搜索