Python自動化開發學習2

來源:互聯網
上載者:User

標籤:python

模組

Python有他有非常豐富的標準庫和第三方庫。使用前要先用import命令匯入,然後才能在之後的代碼中調用。

sys 模組

import sysprint(sys.path)  # 列印環境變數

結果輸出的是一串目錄列表,是python啟動並執行環境變數。Python匯入的時候會依次在這些目錄中尋找。

不過其中並沒有sys.py這個檔案。搜尋了一下,sys模組對外沒有.py檔案,它是內建於解譯器中的,並且是用C語言寫的。

sys模組的一個重要的用法

import sysprint(sys.argv)

需要在系統中,在檔案名稱後帶上參數執行。

$ python test.py 123 abc

會依次輸出執行檔案的目錄,然後是執行時的所有參數(字串),如下

[‘test.py‘, ‘123‘, ‘abc‘]

os 模組

import osa = os.system("dir")  # 調用系統命令print("-->\n",a)

這裡以Windows系統中的dir命令為例。執行後輸出了執行結果,不過變數a中的內容只有0,表示命令執行成功。如果命令執行錯誤,結果會是1。

如果需要將命令執行的結果儲存到變數中,需要這樣:

import osa = os.popen("dir").read()print("-->\n",a)

os.system只是執行命令,將執行結果儲存,僅僅只在螢幕輸出反饋,沒有記錄,所以我們也無法根於反饋資訊做任何處理。

os.popen是將執行的反饋都儲存下來了,但是並不能直接輸出,輸出的應該是記憶體位址。上面還用了read方法才將裡面的內容取了出來。

os.mkdir("目錄名")還可以建立目錄

最後,自己寫的代碼儲存為py檔案後,也可以在別的地方使用import匯入。注意放到環境變數的目錄中,或者修改環境變數(這個沒講)。可以放到和執行檔案同一個目錄中,執行檔案的目錄也在環境變數中。

資料類型

數字和字串沒太大問題。數字中的複數a+bj。python裡用的是j,以前學校裡學的時候用的是i。好吧,關於複數基本都忘記光了,貌似也想不到什麼需要應用到的情境。

負數的平方根也忘記有什麼用了。而且math模組也不支援複數。要支援複數的計算需要cmath模組。具體就不試了。

資料運算

簡單的就略過了

成員運算

in 和 not in。是否在指定的序列中。

a = [1,2,3,4]print(1 in a)print(5 in a)print(1 not in a)print(5 not in a)

身份運算

is 和 is not。是否是相同的對象。一般用來判斷資料類型。

a = [1,2,3,4]b = "hello"print(type(a))print(type(a) is list)print(type(a) is str)print(type(b))print(type(b) is not list)print(type(b) is not str)

位元運算

&,|,^,~,<<,>>。這些。主要是二進位的計算。算IP地址的時候應該會用到。

a = 3  # 0b11print(~a&0xff)  # 限制在255(0xff)之內取反

0000 0000 0000 0011 取反是 [1]111 1111 1111 1100 第一個是符號位,所以直接取反是負數。這裡&0xff後把高位的負號(第一個1)和其他1都變成了0,結果就是0000 0000 1111 1100即252。算掩碼的時候應該能用。

三元運算

先補一下if的簡寫。如果判斷條件之後只跟一句可以簡寫在一行裡。

if True: print("Hello")

用三元運算賦值或運算

a = 1 if True else 2b = 3 if False else 4print(a,b)
print("a") if True else print("b")print(1) if False else print(2)

試了一下使用邏輯運算and和or也能實現,不過不推薦。像下面這種情況Null 字元串會被判定為False,而不是我們想要得到的Null 字元串。

a = "" if True else "你看不見我a"b = "" and True or "你看不見我b"c = True and "" or "你看不見我c"print("a",a)print("b",b)print("c",c)

所以使用官方提供的三元運算還是有道理的。另外試了一下,還可以一直嵌套下去

print(‘a‘) if 1 else print(‘b‘) if 1 else print(‘c‘)print(‘a‘) if 0 else print(‘b‘) if 1 else print(‘c‘)print(‘a‘) if 0 else print(‘b‘) if 0 else print(‘c‘)print(‘a‘) if 0 else print(‘b‘) if 0 else print(‘c‘) if 0 else print(‘d‘)

位元據bytes

pathon3裡將字串和二進位類型區分開了。現在無法混用,只能做類型轉換。

本來通過網路傳輸文本的時候可以直接傳字串,現在必須要先將字串轉成二進位之後才能傳。

資料類型的轉換使用encode 和 decode。

msg = "749B=騎士救兵"a = msg.encode("utf-8")  # 預設utf-8,所以可以省略,但是建議還是都加上print(a)code = b‘\xe6\x9d\xa5\xe7\x8e\xa9\xe9\xad\x94\xe7\x8e\x8b\xe7\x9a\x84\xe5\x92\x9a\xef\xbc\x81‘b = code.decode("utf-8")print(b)

作業

學完這個模組的作業


編寫登陸介面

  • 輸入使用者名稱密碼

  • 認證成功後顯示歡迎資訊

  • 輸錯三次後鎖定

 

多級菜單

  • 三級菜單

  • 可依次選擇進入各子功能表

  • 所需新知識點:列表、字典


Python自動化開發學習2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.