曾經,「Python將歸入高考」的消息,狠狠地刷了朋友圈。python
小程並無持續關注這個消息,好比官方有出來確認嗎?c++
但人們對於Python的火熱關注度,仍是引來衆程序員熱議。程序員
雖然小程資歷尚淺,但仍是有話要說,就聊一聊python。編程
python是小程用過的最簡易實用的一門語言,它所支持的衆多第三方庫更是讓人驚喜(固然,有時會亂),這就舉幾個例子。微信
(1)查找文件
c語言的Cer們應該會贊成,「遍歷目錄找出文件」,實現這樣的功能都會很費勁,對吧?數據結構
那python是怎麼作到的呢?代碼以下:app
#!/usr/bin/python
import os
def traverse(dirpath):
files = os.listdir(dirpath)
for file in files:
fullpath = os.path.join(dirpath, file)
if os.path.isdir(fullpath):
traverse(fullpath)
else:
print fullpathdomtraverse(‘xxx/targetdir’)socket
是否是很簡單?性能
並且,尚未提到glob的使用呢,用這個模塊來查找文件,真是簡單的很!
(2)讀取文件
還記得c語言的getline嗎,python有readlines,並且更易用。
好比,刪除一個文件中的相鄰並且重複的行(產生一個新的文件;通常排序後再刪除重複行),能夠這樣寫(性能都不在考慮範圍內):
import os;
def delduplicate():
fout = open(「newone.txt」, 「a+」)
alllines = open(「original.txt」).readlines()
for i in range(len(alllines)-1):
one=alllines[i][0:21]
two=alllines[i+1][0:21]
if one!=two:
fout.write(alllines[i])
fout.write(alllines[len(alllines)-1])
(3)批量爬取
你還在用c語言的socket來組裝嗎?
python的urllib已經被普遍使用了。
好比,批量獲取某某平臺的歌曲,能夠這樣(注意紅框內的調用就好):
(4)遊戲
好比,寫一個猜數字的遊戲:
import random
secret=random.randint(0,100)
temp=input(「請說出我想的數字:」);
guess=int(temp)
while guess!=secret:
if guess>secret:
print(「沒有這麼大,說個小的!」)
else:
if guess < secret:
print(「過小了,說個大的!」)
else:
break
temp=input(「猜錯了,再來一次吧:」)
guess=int(temp)
print(「厲害,猜對了!」)
(5)數據結構
python的數據結構很實用。
好比「揹包問題」的解決:
def knapsack(w, ws):
「」」
w –揹包容量
ws –物品重量列表 [1, 3, ..]
「」」
ret = []
s = []
i = 0
cnt = len(ws)
rest = w
while s or i < cnt: # 棧爲空或者還有得裝
while i < cnt and rest > 0: # 還有得裝且還有容量
if rest >= ws[i]: # 裝得下就裝
s.append(i)
rest -= ws[i]
i += 1 # 無論當前的是否裝得下,都要嘗試下一個
if rest == 0:
ret.append(s[:]) # one solution
i = s.pop()
rest += ws[i]
i += 1
return ret
(6)畫圖
最後,用一個心圖來結束舉例:
代碼是這樣的:
from turtle import *
pensize(1)
pencolor(‘red’)
fillcolor(‘pink’)
speed(5)
up()
goto(-30, 100)
down()
begin_fill()
left(90)
circle(120,180)
circle(360,70)
left(38)
circle(360,70)
circle(120,180)
end_fill()
up()
goto(-100,-100)
down()
那麼,python就萬能了嗎?
小程以爲,pyhton是解釋執行的語言,對於c/c++這些編譯執行的語言,在運行速度上仍是趕不上人家的,在某些場景並不適合用python來作開發。
可是,若是是從入門、培養編程興趣(像c語言之類有太多細節要考慮並且還各類效果上的打折扣,是很打擊人的!)、培養抽象設計、培養模塊設計這個角度來考慮,小程是同意小學生也來學習的!
更重要的是,同窗們,大家又有機會打電腦了!想一想當年小程打坦克時多麼愉快啊!
猜你喜歡
聲音採集的概念 |
本文分享自微信公衆號 - 廣州小程(gzxc2018)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。