若是您已經有了必定的Python編程基礎,那麼本文就是爲您的編程能力錦上添花,若是您剛剛開始對Python有一點點興趣,不怕,Python的重點基礎知識已經總結在博文《Python筆記之不可不知》中,儘管本文是本身學習Python過程當中的總結,在大神看來,或許略欠火候,但願批評指正,萬分感謝!html
本文是做者學習成績的見證,請尊重勞動成果!版權歸做者和博客園共有,歡迎轉載,但請保留本文出處http://www.cnblogs.com/itred/p/4687287.html , 做者:itRed 聯繫郵箱:it_red@sina.com 博客連接:http://www.cnblogs.com/itred 轉載時請保留此段說明。java
對於Python的開發環境,其實不論是IDLE仍是直接cmd控制檯中,仍是直接將其集成到MyEclipse或者Eclipse下,亦或者是另外的開發工具,其實際上都是根據開發者的習慣而進行選擇的。python
本人從事J2EE開發,習慣了MyEclipse的開發環境,因此將Python集成到這款IDE下。關於如何在IDLE中進行,能夠查看博客《Python的安裝和詳細配置》,這裏我將重點介紹將Python集成到MyEclipse下的方法。git
一.Python與MyEclipse github
下載連接:http://yunpan.cn/ccIaIqrGZs5Vw 訪問密碼 b828web
直接解壓縮文件,放到MyEclipse的安裝目錄下的\Genuitec\MyEclipse-8.6 1\dropins中。重啓MyEclipse,window--->preference --->選擇Python解釋器,即最開始下載的Python的exe文件,完成安裝和配置。面試
二.Python模塊練習 正則表達式
其實在不少編程語言入門時,都會接觸到這麼一個程序。在控制檯上打印出九九乘法表。在實現這個問題的時候,其主要利用的就是for循環處理問題。重點源碼以下:算法
#!/usr/bin/python # coding:utf-8 # @author: Red(it_red@sina.com) # @version: 1.0 ''' 打印99表 ''' def printJJT(): for i in range(1, 10): for j in range(1, i + 1): print i, '*', j, '=', i * j, ' ', print '' if __name__ == '__main__': printJJT() print '完成'
2. Python中的random模塊編程
根據Python本身提供的模塊能夠直接調用其函數實現須要完成的任務,random中的不一樣方法產生相應的結果。這裏列舉中一些random中的處理方法,供初學者瞭解和應用。
在開始編程,須要利用到這種類型的模塊時,就須要加入一行代碼,也便是說引入相應的模塊。語句爲:import random ,關於每一個函數所實現的功能,在代碼中都有註釋。
#!/usr/bin/python # coding:utf-8 # @author: Red(it_red@sina.com) # @version: 1.0 '''Random隨機處理方法''' import random '''獲取隨機整數,0~10''' def getRandInt(): return random.randint(0, 10) '''隨機選取0~100之間的偶數''' def getEvenNum(): return random.randrange(0, 101, 2) '''隨機浮點數''' def getFloatNum(): return random.random() '''隨機浮點數範圍''' def getFloatNumRange(): return random.uniform(1, 10) '''隨機字符''' def getRandChar(): return random.choice('abcdefghijklmn!@#$%^&*') '''在字符串中選取特定數量的字符''' def getRandCharInRange(): return random.sample('lkijuhygtfrdbvcx', 5) '''隨機選取字符串''' def getRandStr(): return random.choice(['apple', 'panda', 'balana', 'blueberry', 'lemo', 'peer', 'milk', 'water']) '''亂序''' def getRandOrder(): items = [1, 2, 3, 4, 5, 6, 7] random.shuffle(items) return items if __name__ == '__main__': # print getRandInt() # print getEvenNum() # print getFloatNum() # print getFloatNumRange() # print getRandChar() # print getRandCharInRange() # print getRandStr() print getRandOrder()
3. 利用Python實現遞歸算法
算法是程序的靈魂,一個好的算法能夠抵過不少行代碼,這裏利用遞歸算法來解決幾個實際問題,這樣就更加方便的瞭解到Python編程語言的簡單了。
*計算1+2+3+4+…+99+100的值:
實現的源代碼以下:
def foo(n): if n > 0:return n + foo(n - 1) if n <= 0:return 0
*計算N! 的值:
實現的關鍵源碼以下:
def fac(n): if n == 0 or n == 1: return 1 else: return n * fac(n - 1)
*再來一個Python面試題:有5我的坐在一塊兒,問第五我的多少歲?他說比第4我的大2歲。問第4我的歲數,他說比第3我的大2歲。問第三我的,又說比第2人大兩歲。問第2我的,說比第一我的大兩歲。最後問第一我的,他說是10歲。請問第五我的多大?
實現的源碼以下:
def fun(i): if i == 1: return 10 return fun(i - 1) + 2
4. Python發送郵件
其實相比較而言,利用Python發送郵件應該是最簡單的,我此前寫過利用java實現發送郵件的功能,可是與此次寫利用Python實現發送郵件功能的比較,明顯感受到Python的強大。雖然java開發也是利用其它現有的資源,即利用Apache mail開發實現,然而對Python而言,僅僅只須要一行代碼就能夠導入,更加難以想象的是開發完整個發送郵件的功能,也僅僅不足20行代碼,簡潔高效,個人最愛!
#! /usr/bin/env python # coding=utf-8 # @author: Red(mail:it_red@sina.com) # @version: 1.0 '''發送郵件''' import smtplib from email.mime.text import MIMEText _user = "it_red@sina.com" _pwd = "*******" _to = "it_red@sohu.com" # 使用MIMEText構造符合smtp協議的header及body msg = MIMEText("測試_Python發送郵件") msg["Subject"] = "測試郵件" msg["From"] = _user msg["To"] = _to s = smtplib.SMTP("smtp.sina.com.cn", timeout=30) # 鏈接smtp郵件服務器,端口默認是25 s.login(_user, _pwd) # 登錄服務器 s.sendmail(_user, _to, msg.as_string()) # 發送郵件 s.close()
5. Python 的Base64加密
只要引入模塊,一行代碼輕鬆搞定。
加密:base64.encodestring(str)
解密:base64.decodestring(str)
6. Python輕鬆調用瀏覽器
實現python打開瀏覽器並跳轉到指定的網址
關鍵代碼以下:
url = 'www.cnblogs.com/itred' webbrowser.open(url)
7. Python爬蟲之扒取指定網頁源碼
關鍵代碼以下:
page = urllib.urlopen(url)
html = page.read()
8. Python爬蟲之爬去指定網頁上面的圖片
關鍵源代碼以下:
def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.*?\jpg)" ' imgre = re.compile(reg) imglist = re.findall(imgre,html) x=0 for imgurl in imglist: urllib.urlretrieve(imgurl,'%s.jpg' % x) x+=1 html = getHtml("") print html print getImg(html)
9. Python爬蟲之扒取指定網頁上面的URL連接地址和value值
其實原理和上述方法同樣,只是在正則表達式和獲取數據上進行一下處理就能夠了,關鍵源碼以下:
def getURL(html): try: f = open('itRed.txt', 'w') p = re.compile('<a .*?><a .*? href="(.*?)">(.*?)</a>') for url, name in p.findall(html): f.write(url + '\n') # print '%s(%s)' % (name, url) finally: f.close()
三.總 結
到這裏,至少說差很少能夠看懂一部分Python的代碼了。我的認爲,要想寫出優秀的,高質量的代碼,去讀大神級人物的代碼是必然的,也是通向高質量大神的最快捷的道路。關於本案例中全部涉及到的源代碼均可以在本人的GitHub中找到,若是沒找到能夠直接發郵件索取。GitHub連接地址:https://github.com/itRed/python_basic
在學習Python的過程當中,無時無刻沒有感覺到Python的簡單和方便。也更加堅決了本身選擇的路,雖然Python學起來簡單,可是就職何一條學習的路而言,要想深刻進去,仍是須要本身不斷的付出,不斷的學習,不斷的披荊斬棘,在此與諸君共勉!在python的學習之路上一路高歌!
謹以此文獻給奮鬥中的本身。
做者:itRed 博客:http://itred.cnblogs.com
GitHub:https://github.com/itRed