1. 程式人生 > 其它 >Python學習之路-初識Python-第一篇

Python學習之路-初識Python-第一篇

1.第一句Python程式碼

  在 /home/dev/ 目錄下建立 hello.py 檔案,內容如下:

print "hello,world"

  執行 hello.py 檔案,即: python /home/dev/hello.py

  python內部執行過程如下:

  

 

2.內容編碼

  python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill)

  ASCII(American Standard Code for Information Interchange,美國標準資訊交換程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個位元組),即:2**8 = 256,所以,ASCII碼最多隻能表示 256 個符號。

  

  顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字元和符號的編碼,即:Unicode

  Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字元編碼。Unicode 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536,

  注:此處說的的是最少2個位元組,可能更多

  UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行分類:ascii碼中的內容用1個位元組儲存、歐洲的字元用2個位元組儲存,東亞的字元用3個位元組儲存...

  所以,python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill),如果是如下程式碼的話:

  報錯:ascii碼無法表示中文

#!/usr/bin/env python
 
print "你好,世界"

  改正:應該顯示的告訴python直譯器,用什麼編碼來執行原始碼,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
print "你好,世界"

 

3.註釋

  當行注視:# 被註釋內容

  多行註釋:""" 被註釋內容 """

 

4.pyc檔案

  執行Python程式碼時,如果匯入了其他的 .py 檔案,那麼,執行過程中會自動生成一個與其同名的 .pyc 檔案,該檔案就是Python直譯器編譯之後產生的位元組碼。

  ps:程式碼經過編譯可以產生位元組碼;位元組碼通過反編譯也可以得到程式碼。

 

5.變數

5.1 宣告變數

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3   
4 name = "lizexiong"

  上述程式碼聲明瞭一個變數,變數名為: name,變數name的值為:"lizexiong"

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

  

  變數定義的規則:

  • 變數名只能是 字母、數字或下劃線的任意組合
  • 變數名的第一個字元不能是數字
  • 以下關鍵字不能宣告為變數名

  ['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']

 

5.2 變數的賦值

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3  
4 name1 = "lizexiong"
5 name2 = "jay"

  

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

  

 

6.使用者互動

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

  輸入密碼時,如果想要不可見,需要利用getpass 模組中的 getpass方法,即:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3   
 4 import getpass
 5   
 6 # 將使用者輸入的內容賦值給 name 變數
 7 pwd = getpass.getpass("請輸入密碼:")
 8   
 9 # 列印輸入的內容
10 print pwd

 

7.流程控制和縮排

7.1 需求一

 1 #!/usr/bin/env python
 2 # -*- coding: encoding -*-
 3   
 4 # 提示輸入使用者名稱和密碼
 5   
 6 # 驗證使用者名稱和密碼
 7 #     如果錯誤,則輸出使用者名稱或密碼錯誤
 8 #     如果成功,則輸出 歡迎,XXX!
 9  
10  
11 import getpass
12   
13   
14 name = raw_input('請輸入使用者名稱:')
15 pwd = getpass.getpass('請輸入密碼:')
16   
17 if name == "lizexiong" and pwd == "cmd":
18     print "歡迎,lizexiong!"
19 else:
20     print "使用者名稱和密碼錯誤"

 

7.2 根據使用者輸入內容輸出其許可權

 1 # 根據使用者輸入內容列印其許可權
 2   
 3 # lizexiong --> 超級管理員
 4 # eric --> 普通管理員
 5 # tony,rain --> 業務主管
 6 # 其他 --> 普通使用者
 7  
 8 name = raw_input('請輸入使用者名稱:')
 9   
10   
11 if name == "lizexiong"12     print "超級管理員"
13 elif name == "eric":
14     print "普通管理員"
15 elif name == "tony" or name == "rain":
16     print "業務主管"
17 else:
18     print "普通使用者"

 

8.while迴圈

8.1 基本迴圈

1 while 條件:
2      
3     # 迴圈體
4  
5     # 如果條件為真,那麼迴圈體則執行
6     # 如果條件為假,那麼迴圈體不執行

 

8.2 break

1 break用於退出所有迴圈
2 
3 while True:
4     print "123"
5     break
6     print "456"

 

8.3 Continue

1 continue用於退出當前迴圈,繼續下一次迴圈
2 
3 while True:
4     print "123"
5     continue
6     print "456"

 

9.for迴圈

1 使用者按照順序迴圈可迭代物件中的內容,
2 
3 PS:breakcontinue
4 
5 li = [11,22,33,44]
6 for item in li:
7     print item