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:break、continue 4 5 li = [11,22,33,44] 6 for item in li: 7 print item