Python之旅day1

Python是什麼?

python是運維晉升的一個趨勢html

python下載地址

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 ) ⇒ 將一個整數轉換爲一個八進制字符串
View Code

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進制位能夠表達好幾百萬的顏色信息。
View Code

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')
複製代碼

elifelse if的縮寫,徹底能夠有多個elif,因此if語句的完整形式就是:

if <條件判斷1>:
    <執行1>
elif <條件判斷2>:
    <執行2>
elif <條件判斷3>:
    <執行3>
else:
    <執行4>

if語句執行有個特色,它是從上往下判斷,若是在某個判斷上是True,把該判斷對應的語句執行後,就忽略掉剩下的elifelse

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

在循環中,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

在循環過程當中,也能夠經過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用於退出本次循環,繼續下一次循環

相關文章
相關標籤/搜索