標籤:壓縮 windows assert 方案 inf code world 使用者名稱 關鍵字
一、Python內部執行過程
二、解譯器
指定由Python解譯器執行Python指令碼
如果想類似執行shell指令碼一樣執行hello.py指令碼,例如: ./hello.py ,那麼需要在hello.py檔案的頭部指定解譯器,如下:
#!/usr/bin/env pythonprint("hello,world")
如此一來,執行: ./hello.py 即可。
注意:執行前需要給予 hello.py 執行許可權,chmod 755 hello.py
Python互動式環境的提示符: >>>
Windows命令列模式的提示符: C:>
在Python互動式環境下直接輸入代碼,按斷行符號,就可以立刻得到代碼執行結果,但是在命令列模式下,執行 Python ##.py檔案時,並不會。
在命令列模式下,可以執行python進入Python互動式環境,也可以執行python hello.py運行一個.py檔案
兩種文字編輯器:Sublime Text 、 Notepad++
執行python檔案,在命令列中,切換到該Python檔案所在的目錄下,然後輸入 Python ###.py命令就可以了。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
Python互動模式主要是為了調試Python代碼用的,也便於初學者學習,它不是正式運行Python代碼的環境!
Python的互動模式和直接運行.py檔案有什麼區別呢?
直接輸入python進入互動模式,相當於啟動了Python解譯器,但是等待你一行一行地輸入原始碼,每輸入一行就執行一行。
直接運行.py檔案相當於啟動了Python解譯器,然後一次性把.py檔案的原始碼給執行了,你是沒有機會以互動的方式輸入原始碼的。
三、內容編碼
python解譯器在載入 .py 檔案中的代碼時,會對內容進行編碼(預設ascill)
ASCII(American Standard Code for Information Interchange,美國標準資訊交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個位元組),即:2**8 = 256,所以,ASCII碼最多隻能表示 256 個符號。
Unicode(統一碼、萬國碼、單一碼)是一種在電腦上使用的字元編碼。Unicode 是為瞭解決傳統的字元編碼方案的局限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536,
註:此處說的的是最少2個位元組,可能更多
UTF-8,是對Unicode編碼的壓縮和最佳化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行分類:ascii碼中的內容用1個位元組儲存、歐洲的字元用2個位元組儲存,東亞的字元用3個位元組儲存...
報錯:ascii碼無法表示中文
1 #!/usr/bin/env python2 3 print "你好,世界"
改正:應該顯示的告訴python解譯器,用什麼編碼來執行原始碼,即:
1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3 4 print "你好,世界"
四、注釋
當行注視:# 被注釋內容
多行注釋:""" 被注釋內容 """
五、執行指令碼傳入參數
Python有大量的模組,類庫有三種:
- Python內部提供的模組
- 業內開源的模組
- 程式員自己開發的模組
例如:
Python內部提供一個 sys 的模組,其中的 sys.argv 用來捕獲執行執行python指令碼時傳入的參數
1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3 4 import sys5 6 print sys.argv
六、pyc檔案
執行Python代碼時,如果匯入了其他的 .py 檔案,那麼,執行過程中會自動產生一個與其同名的 .pyc 檔案,該檔案就是Python解譯器編譯之後產生的位元組碼。
注意:代碼經過編譯可以產生位元組碼;位元組碼通過反編譯也可以得到代碼。
七、變數
1、聲明變數
name = "tom"
# name:變數名, tom:變數的內容, =:賦值號
變數的作用:通過符號指代記憶體中的某個內容
變數定義的規則:
- 變數名只能是 字母、數字或底線的任意組合
- 變數名的第一個字元不能是數字
- 以下關鍵字不能聲明為變數名
[‘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‘]
2、變數的賦值
name1 = "wupeiqi"name2 = "alex"
name1 = "wupeiqi"name2 = name1
八、輸入
獲得使用者輸入:input函數
例如:
>>> name = input("請輸入使用者名稱:")請輸入使用者名稱:tom>>> name‘tom‘
輸入密碼時,如果想要不可見,需要利用getpass 模組中的 getpass方法,即:
>>> import getpass>>> pwd = getpass.getpass()Passwd:>>> pwd123456
注意:Python內建的ide不支援隱藏回顯,用Windows的cmd就可以
九、流程式控制制和縮排
樣本一:使用者登入驗證
#!/usr/bin/env python# -*- coding: utf-8 -*- # 載入getpass庫 import getpass name = input(‘請輸入使用者名稱:‘)pwd = getpass.getpass(‘請輸入密碼:‘) if name == "tom" and pwd == "111111": print "歡迎,tom!"else: print "使用者名稱和密碼錯誤"
樣本二:根據使用者輸入內容輸出其許可權
# 根據使用者輸入內容列印其許可權 # alex --> 超級管理員# eric --> 普通管理員# tony,rain --> 業務主管# 其他 --> 普通使用者name = raw_input(‘請輸入使用者名稱:‘) if name == "alex": print "超級管理員"elif name == "eric": print "普通管理員"elif name == "tony" or name == "rain": print "業務主管"else: print "普通使用者"
十、while迴圈
1、基本迴圈
while <條件>: <迴圈體># 如果條件為真,執行迴圈體# 如果條件為假,不執行迴圈體
2、
break:結束迴圈
continue:跳過當前迴圈,直接開始下一次迴圈
要特別注意,不要濫用break和continue語句。break和continue會造成代碼執行邏輯分叉過多,容易出錯。大多數迴圈並不需要用到break和continue語句,上面的兩個例子,都可以通過改寫迴圈條件或者修改迴圈邏輯,去掉break和continue語句。
有些時候,如果代碼寫得有問題,會讓程式陷入“死迴圈”,也就是永遠迴圈下去。這時可以用Ctrl+C退出程式,或者強制結束Python進程。
Python學習【02】Python基礎