python是運維晉升的一個趨勢html
https://www.python.org/downloads/python
python解釋器pycharm安裝以及激活linux
http://idea.lanyus.com/ 獲取驗證碼編程
#!/usr/bin/env python #_*_ coding:utf-8 _*_ # ** author: zhaobin # ** description: more function # ** createDate: 2018-8-13 # ** run python: python xxxx.py # *****************************
1.文件頭bash
#!/usr/bin/env python #_*_ coding:utf-8 _*_
Linux下修改pip源方法以下: linux下,修改 ~/.pip/pip.conf (沒有就建立一個), [global] timeout = 6000 index-url = http://pypi.douban.com/simple trusted-host = pypi.douban.com
2.python的文件能夠是任意的後綴名網絡
2.一、執行 Python 腳本的兩種方式 直接調用python腳本,用python解釋器去調用python腳本 2.二、簡述位、字節的關係 一個字節是8位,計算機計算是以字節爲單位,存儲是以位單位 2.三、簡述 ascii、unicode、utf-‐八、gbk 的關係 最早出現的是ascii編碼,其次是unicode編碼,又由於每一個國家的標準不一樣,繼而出現unicode的壓縮編碼utf-8。ascii碼8位,unicode碼16位。用ascii碼錶示的字符,再用unicode表示就會形成內存浪費,提出的utf-8編碼,能用多少表示就用多少表示。 2.四、請寫出 「李傑」 分別用 utf-‐8 和 gbk 編碼所佔的位數 Utf-8 中文一個字表明3個字節,佔了6個字節 Gbk是一個表明2個字節,佔了4個字節
3.單行註釋: # 註釋內容運維
多行註釋:"""註釋內容"""ide
4變量的聲明與引用函數
#!/usr/bin/env python 會查找python的位置 name='buer' #變量的聲明 name #經過變量名,引用變量的值 print(name) #引用而且打印變量的名name對應的值,即'buer'
1 #全部腳本第一句話都要寫解釋如下腳本是用什麼解釋器 2 #!/usr/bin/python python 3 #語言設置爲:簡體中文 4 #_*_coding:utf-8_*_ 5 6 7 #變量定義的規則: 8 9 #變量名只能是 字母、數字或下劃線的任意組合 10 #變量名的第一個字符不能是數字 11 #如下 關鍵字 不能聲明爲變量名 12 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 13 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 14 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 15 'return', 'try', 'while', 'with', 'yield']
16 #變量要有意義
17 #變量不能太長
18 #不要用中文
19 #推薦使用駝峯或者下劃線命名
20 #區分大小寫
5.簡單的帳號密碼oop
1 #input <輸入> 2 #print<打印> 3 username = input('用戶名') 4 password = input('密碼') 5 print(username,password) 6 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 7 #輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即: 8 9 10 import getpass 11 12 username = input('usernmae:') 13 password = getpass.getpass('password:') 14 15 print(username,password) 16 17 18 19 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 20 21 # .format <格式> 22 # import <調用> getpass<py系統自帶函數模塊,密文輸入> 23 # print <打印> 24 # if <條件成立執行> 25 # and <並且> 26 # else <if條件不成立時執行> 27 28 import getpass 29 30 name = 'alex' 31 word = 'as123' 32 33 username = input('名字:') 34 password = input('密碼:') 35 36 if name == username and word == password: 37 print('歡迎 {N} 登陸'.format(N=name)) 38 else: 39 print('帳號或者密碼錯誤')
6.for循環
1 # i <變量名> 2 # range(10) <範圍> (0,1,2,3,4,5,6,7,8,9)<0-9十個數> 3 4 for i in range(10): 5 print('loop',i) 6 7 8 # (0,10,3) <起始數,結束值,步長> <步長默認加1> 9 for i in range(0,10,3): 10 print('loop',i) 11 12 13 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 14 15 # continue <跳出本次循環,從新循環> 16 17 for h in range(0,10): 18 if h <3: 19 print('loop',h) 20 else: 21 print('kkkkkk...') 22 continue 23 print('yyyyyy...') 24 print('呵呵呵...') 25 26 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 27 28 # for t in range(9) <條件循環> <變量名> <在> <範圍(參數)> 29 # print <打印> 30 # if <條件判斷> 31 # break <停止程序> 32 33 for t in range(9): 34 print('______',t) 35 for j in range(11,50): 36 print(j) 37 if j >= 22: 38 break
7.python的數據類型
1 1、數字 2 int(整型) 3 -9223372036854775808~9223372036854775807 4 5 float(浮點型) 6 3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4 7 complex(複數) 8 (-5+4j)和(2.3-4.6j)是複數的例子,其中-5,4爲實數,j爲虛數 9 10 2、布爾值 11 真或假 12 1 或 0 13 14 3、字符串 15 "hello world"
8.顯示數據類型
2 #顯式轉換的多種類型 3 # 4 #int (x [,base]) ⇒ 將x轉換爲一個十進制的整數 5 #long(x [,base]) ⇒ 將x轉換爲一個十進制的長整數 6 #float(x) ⇒ 將x轉換爲一個浮點數 7 #str(object) ⇒ 轉換爲字符串 8 #repr(object) ⇒ 轉換爲表達式字符串 9 #eval(str) ⇒ 用來計算在字符串中的有效Python表達式,並返回一個對象 10 #tuple(seq) ⇒ 將序列seq轉換爲一個元組 11 #list(seq) ⇒ 將序列seq轉換爲一個列表 12 #chr(x ) ⇒ 將一個整數轉換爲一個字符 13 #unichr(x ) ⇒ 將一個整數轉換爲Unicode字符 14 #ord(x ) ⇒ 將一個字符轉換爲它的整數值 15 #hex(x ) ⇒ 將一個整數轉換爲一個十六進制字符串 16 #oct(x ) ⇒ 將一個整數轉換爲一個八進制字符串
9.數據運算
#############################################################################>>> #——————————數據運算—————— # #——算數運算:—— # # 運算符 描述 實例 # # + 加-兩個對象相加________________________________________________________________a+b 輸出結果 30 15+15=30 # - 減-獲得負數或者一個數減去另外一個數______________________________________________a-b 輸出結果-10 20-30=-10 # * 乘-兩個數相乘或者返回一個被重複若干次的字符串__________________________________a*b 輸出結果200 20*10=200 # / 除-X除以Y______________________________________________________________________b/a 輸出結果2 4/2=2 # % 取模-返回除法的餘數____________________________________________________________b%a 輸出結果0 # ** 冪-返回X的Y次冪________________________________________________________________a**b 爲10的20次方,輸出結果100000000000000000000 # // 取整除-返回商的整數部分________________________________________________________9//2 輸出結果 4 9.0//2.0 輸出結果4.0 # ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——比較運算:—— false<假0> true<真1> # # 運算符 描述 實例 # # == 等於-比較對象是否相等__________________________________________________________(a==b)返回False # != 不等於-比較兩個對象是否不相等__________________________________________________(a!=b)返回true # <> 不等於-比較兩個對象是否不相等__________________________________________________(a<>b)返回true 這個運算符相似 != # > 大於-返回X是否大於Y____________________________________________________________(a>b)返回False # < 小於-返回X是否小於y。全部比較運算符返回1表示真,返回0表示假____________________(a<b)返回true # 這分別與特殊的變量True和False等價.注意,這些變量名的大寫。 # >= 大於等於-返回x是否大於等於y____________________________________________________(a>=b)返回False # <= 小於等於-返回x是否小於等於y____________________________________________________(a>=b)返回true # ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——賦值運算:—— # # 運算符 描述 實例 # # = 簡單的賦值運算符_______________________________________________________________c = a + b 將 a + b 的運算結果賦值給 c # += 加法賦值運算符_________________________________________________________________c += a 等效於 c = c + a # -= 減法賦值運算符_________________________________________________________________c -= a 等效於 c = c - a # *= 乘法賦值運算符_________________________________________________________________c *= a 等效於 c = c * a # /= 除法賦值運算符_________________________________________________________________c /= a 等效於 c = c / a # %= 取模賦值運算符_________________________________________________________________c %= a 等效於 c = c % a # **= 冪賦值運算符___________________________________________________________________c **= a 等效於 c = c ** a # //= 取整賦值運算符_________________________________________________________________c //= a 等效於 c = c // a _ # ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——邏輯值運算:—— # # 運算符 描述 實例 # # and 布爾「與」-若是X爲False, X and Y ,返回False,不然它返回Y的計算值_____________(K and J)返回true # or 布爾「或」-若是X爲True, 它返回True,不然它返回Y的計算值_________________________(K or J)返回true # not 布爾「非」-若是X爲True,返回False,若是X爲False,它返回True______________________not(K and J)返回true # ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——成員運算:—— # # 運算符 描述 實例 # # in 若是在指定的序列中找到值返回True,不然返回False,________________________________x在y序列中,若是x在y序列中返回True # not in 若是在指定的序列中沒有找到值返回True,不然返回False,____________________________x不在y序列中,若是x在y序列中返回True # ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——身份運算:—— # # 運算符 描述 實例 # # is is是判斷兩個標識符是否是引用自一個對象__________________________________________x is y ,若是 id(x) 等於 id(y) ,is 返回結果1 # is not is not是判斷兩個標識符是否是引用自不一樣對象______________________________________x is not y ,若是 id(x) 不等於 id(y) ,is not 返回結果1 # ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——位運算:—— # # 運算符 描述 實例 # # & 按位與運算符_________________________________________________________________(a&b) 輸出結果 12 ,二進制解釋: 0000 1100 # | 按位或運算符_________________________________________________________________(a|b) 輸出結果 61 ,二進制解釋: 0011 1100 # ^ 按位異或運算符_______________________________________________________________(a^b) 輸出結果 49 ,二進制解釋: 0011 0001 # ~ 按位取反算符_________________________________________________________________(~a) 輸出結果 -61 ,二進制解釋: 1100 0011 ,在一個有符號二進制數的補碼形式。 # << 左移動運算符_________________________________________________________________a<<2 輸出結果 240 ,二進制解釋: 1111 0000 # >> 右移動運算符_________________________________________________________________a>>2 輸出結果 15 ,二進制解釋: 0000 1111 # ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # 按位取反運算規則(按位取反再加1) #!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 #相同爲0,不一樣爲1 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # #——運算符優先級:—— # # 運算符 描述 # # ** ___指數(最高優先級) # ~ + - ___按位翻轉,一元加號和減耗(最後兩個的方法名爲+@和-@) # * / % // ___乘,除,取模和取整數 # + - ___加法減法 # >> << ___右移,左移運算符 # & ___位 'AND' # ^ | ___位運算符 # <= < > >= ___比較運算符 # < > == != ___等於運算符 # = %= /= //= -= += *= **= ___賦值運算符 # is is not ___身份運算符 # in not in ___成員運算符 # not or and ___邏輯運算符 # ######>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # * / + - <一元操做符> # %[百分比,取餘數] **[冪運算操做符,比一元操做符左邊高比一元操做符右邊低] # //[地板除法] # #運算符優先級 # 冪運算 ** # 正負號 +* -* # 算術操做符 * / // + - # 比較操做符 < <= > >= == != # 邏輯運算符 not and or # #比較操做符 < <= > >= == != <根據表示的值進行比較> # #true <1,真> false <0,假> #邏輯符 and <左右都爲true執行> or <左右 或者爲true執行> not<相反執行> ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #三元操做符 語法: x if 條件 else y #x,y = 4, 5 #if x < y: # small=x #else: # small=y #改進爲 #small = x if x < y else y # #assert<斷言,關鍵字,AssertionError,程序檢查點> #true <1,真> false <0,假> #while<而,循環體,爲true時執行> # #for<爲,循環體> in<在> # #for 目標 in 表達式 # 循環體 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 三元運算 result = 值1 if 條件 else 值2 若是條件爲真:result = 值1 若是條件爲假:result = 值2 3、進制 二進制,01 八進制,01234567 十進制,0123456789 十六進制,0123456789ABCDEF 二進制到16進制轉換http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1 計算機內存地址和爲何用16進制? 爲何用16進制 1、計算機硬件是0101二進制的,16進制恰好是2的倍數,更容易表達一個命令或者數據。十六進制更簡短,由於換算的時候一位16進制數能夠頂4位2進制數,也就是一個字節(8位進制能夠用兩個16進製表示) 2、最先規定ASCII字符集採用的就是8bit(後期擴展了,可是基礎單位仍是8bit),8bit用2個16進制直接就能表達出來,無論閱讀仍是存儲都比其餘進制要方便 三、計算機中CPU運算也是遵守ASCII字符集,以1六、32、64的這樣的方式在發展,所以數據交換的時候16進制也顯得更好 4、爲了統一規範,CPU、內存、硬盤咱們看到都是採用的16進制計算 16進制用在哪裏 1、網絡編程,數據交換的時候須要對字節進行解析都是一個byte一個byte的處理,1個byte能夠用0xFF兩個16進制來表達。經過網絡抓包,能夠看到數據是經過16進制傳輸的。 2、數據存儲,存儲到硬件中是0101的方式,存儲到系統中的表達方式都是byte方式 三、一些經常使用值的定義,好比:咱們常常用到的html中color表達,就是用的16進制方式,4個16進制位能夠表達好幾百萬的顏色信息。
10. 簡單的幾個習題
10.1 使用while循環輸入 1 2 3 4 5 6 8 9 10
#coding=utf-8 count = 1 while count < 11: if count == 7: pass else: print (count) count = count+1 print ('--end--')
10.2 求1-100的全部數的和
#coding=utf-8 a = 1 b = 0 while a < 101: b = b + a a = a+1 print (b)
10.3求1-100的全部偶數
#coding=utf-8 a = 1 while a < 101: temp = a %2 if temp ==0: pass print (a) else: pass a = a+1
10.4求1-2+3-4+5..99的全部和
#coding=utf-8 a = 1 b = 0 while a < 101: temp = a % 2 if temp == 0: b = b - a else: b = b + a a = a+1 print(b)
10.5 用戶登陸(3次重試機會)
import getpass s_name = "zhao" s_pass = "123456" count = 0 while count < 3: tar_name = input("輸入你的帳戶") password = input("輸入你的密碼") if tar_name == s_name and password == s_pass: print "歡迎進入" break elif not tar_name and not password: print "帳戶名不能爲空" count +=1 else: print "帳戶密碼錯誤" count +=1
1、流程控制
1.條件語句
計算機之因此能作不少自動化的任務,由於它能夠本身作條件判斷
1
2
3
|
a
=
5
if
a >
2
:
print
(
'yes'
)
|
根據Python的縮進規則,若是if
語句判斷是True
,就把縮進的兩行print語句執行了,不然,什麼也不作。
也能夠給if
添加一個else
語句,意思是,若是if
判斷是False
,不要執行if
的內容,去把else
執行了:
a = 5
if a > 8: print('yes') else: print('no')
a = 5
if a > 8: print('yes') elif a > 3: print('no') else: print('bey')
elif
是else if
的縮寫,徹底能夠有多個elif
,因此if
語句的完整形式就是:
if <條件判斷1>: <執行1> elif <條件判斷2>: <執行2> elif <條件判斷3>: <執行3> else: <執行4>
if
語句執行有個特色,它是從上往下判斷,若是在某個判斷上是True
,把該判斷對應的語句執行後,就忽略掉剩下的elif
和else
if
判斷條件還能夠簡寫,好比寫:
1
2
|
if
x:
print
(
'True'
)
|
只要x
是非零數值、非空字符串、非空list等,就判斷爲True
,不然爲False
。
2.循環
Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每一個元素迭代出來,看例子:
for i in range(0,5): print(i) else: print('The for loop is over')
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
因此for x in ...
循環就是把每一個元素代入變量x
,而後執行縮進塊的語句。
再好比咱們想計算1-100的整數之和,能夠用一個sum
變量作累加:
sum = 0
for x in range(101): sum+=x print(sum)
習題:公雞5文錢一隻,母雞3文錢一隻,小雞3只一文錢,用100文錢買一百隻雞,其中公雞,母雞,小雞都必需要有,問公雞,母雞,小雞要買多少隻恰好湊足100文錢。
for x in range(1,20): for y in range(1,33): z = 100-x-y if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100): s = "公雞:%d;母雞:%d;小雞:%d;" %(x,y,z) print(s)
第二種循環是while循環,只要條件知足,就不斷循環,條件不知足時退出循環。好比咱們要計算100之內全部奇數之和,能夠用while循環實現:
sum = 0
n = 99
while n > 0: sum += n n = n - 2 print(sum)
在循環中,break
語句能夠提早退出循環。例如,原本要循環打印1~100的數字:
n = 1
while n <= 100: if n > 10: # 當n = 11時,條件知足,執行break語句 break # break語句會結束當前循環 print(n) n += 1 print('END')
執行上面的代碼能夠看到,打印出1~10後,緊接着打印END
,程序結束。
可見break
的做用是提早結束循環。
在循環過程當中,也能夠經過continue
語句,跳過當前的此次循環,直接開始下一次循環。
n = 0
while n < 10: n += 1 if n % 2 == 0: # 若是n是偶數,執行continue語句 continue # continue語句會直接繼續下一輪循環,後續的print()語句不會執行 print(n)
執行上面的代碼能夠看到,打印的再也不是1~10,而是1,3,5,7,9。
可見continue
的做用是提早結束本輪循環,並直接開始下一輪循環。
小結:break用於退出本層循環;continue用於退出本次循環,繼續下一次循環