摘要:因此,本文將會以一些正經的嚴謹的有深度的大概吧的課題,慢慢的接觸人工智能的相關知識。
Before The Beginning
????近年,技術圈炒的最火的兩個話(ba)題(gua)不外乎就是人工智障智能以及炒幣區塊鏈了,這個系列文章我主要以一個小菜鳥的角度一步一步的對人工智能的相關知識做一點了解,也算是一個顫顫巍巍追著AI浪潮公交車的社會主義五好青年,咳咳,扯遠了...其實對于人工智能,嚴格意義上更多的是一個科學領域的課題,其中更多的是數學、語言學、社會學、神經科學的研究內容,對于我們這種社會底層的小碼農想要進入這個領域往往可能面臨的是一大堆的專業名詞,一大堆的技術論文,一大堆公開課還有一大堆的不知道到底搞懂沒有但是吹的很牛逼的培訓機構講師,門都沒入就被各種忽悠到西伯利亞去了。
????因此,本文將會以一些正經的嚴謹的有深度的(大概吧)的課題,慢慢的接觸人工智能的相關知識。
????提起人工智能,就不得不提Python語言,但實際上Python不是什么新東西,反而這是一門相當老的語言了起源甚至可以追溯到80年代末90年代初,那為何它會在人工智能這個風口獨領風騷占據了半壁江山呢?Python的特點總體可以歸納成以下幾點:
成熟完善的社區——比起go、koltin之類的新興語言,相關資料簡直是好找一個數量級
大量的庫——其中包括了Python的庫、用Python包裝的C/C++庫、甚至各種語言的庫
與生俱來的C/c++互操作性——其實不止C,Python與很多語言都具備良好的互操作性,膠水語言的大名不是白叫的
語法簡單優雅——Python的哲學就是簡單,甚至某些問題只會提供你唯一的解決方案,不夠靈活但簡單啊!而且,對于一些不是計算機專業人士來說,他的語法可能更接近自然語言,更容易被接受,而且是真正的編程語言(它的競爭對手——各種Shell腳本語言哭暈在廁所)
Hellow World!好的,按照國際管理,我們先用python來寫個hellow world
P.S. 本文基于Python3,而且一些語法細節也不會一一講解,更完整的語法還請查閱官網文檔!如非特殊情況的話還是更推薦大家學習Python3,至于Python2跟Python3的區別就不在贅述了。創建項目文件
Python源碼以.py為后綴,以下為一個最簡例子:
example-1: helloWorld.py
# -*- coding:utf-8 -*- #__author__ = "akers" print("hellow world !")
沒錯,就是這么簡單!用python helloWorld.py運行,就能看到打印的Hellow World了!(沒錯,我單詞打錯了,僅此一家,版權所有,如有雷同,純屬巧合,本人不保留追究權利!)
因為Python柔和了面向對象、面向過程、函數式編程等多種編程方式,因此類似這種直接在源文件中書寫命令也是支持的,這種寫法在制作一些小工具、小腳本、小實驗的時候非常非常的方便,但我們要嚴謹一點對吧,所以我們再來個正經點的:
以下為一個Python的main方法的最簡例子:
example-1: hello_world_main.py
# -*- coding:utf-8 -*- #__author__ = "akers" if __name__ == "__main__": print("hellow world !");
在上面例子中的if __name__ == "__main__":即為平時我們熟知的main方法了,那至于一些覺得這個很別扭的,看不慣的,可以使用如下這種格式的:
# -*- coding:utf-8 -*- #__author__ = "akers" import sys #包導入 # 常見的main函數定義 def main(argv=[]): print("hellow world: ", argv) # 你看不到我,你看不到我 if __name__ == "__main__": main(sys.argv) # sys.argv獲取命令行參數
這樣是不是就親切很多了呢,跟你熟悉的java和c是不是就一樣一樣了呢....額....你說那個__name__啥的,沒事你就當沒看見了!啊?你問這個__name__是什么?其實它是一個內置變量,如果是直接執行的話,編譯器會傳入"main"如果是作為包引入,會傳入包名。
然后,本期文章就到此結束了,才怪!下面讓我們把HelloWorld完善一下
先準備一個底圖
然后請出——————————館長大人:
引入依賴包PIL是Python的一個視覺處理庫,目前已經停止維護了,但它后繼有人啊,pillow庫fork了它,因此一般我們說PIL的時候,實際上用的是pillow
Python的外部依賴,需要通過pip工具進行安裝,然后才能在代碼里import到相應的包,下面以安裝過pillow為例:pip install pillow
from PIL import Image,ImageDraw,ImageFont加載圖片
#導入表情背景 background=Image.open("./resources/background/pander/default.png") #導入表情 faceImg=Image.open("./resources/face/jgz/laugth.png")組合圖片
#創建底圖 target=Image.new("RGBA", (250, 250), (0, 0, 0, 0)) #表情背景貼到底圖上 target.paste(background, (0,0)) #表情圖貼在合適的位置上,注意啊,別擋到背景圖 target.paste(faceImg, (62,37))加上點文字
#ImageDraw為PIL的繪圖模塊 draw = ImageDraw.Draw(target) #設置字體 font = ImageFont.truetype("./resources/msyh.ttc", 30) #底圖上的10,200位置寫入文字 draw.text((10, 200), argv[1],fill="black", font=font)
上面的argv[1]就是取第一個命令行參數
走你!運行一下我們腳本:
python emofigther.py "Hellow World!"
然后,你就會得到一個Hellow World!(沒錯,我依然打錯單詞了!)
我相信你們的斗圖之魂已經有點按耐不住了,但是等等,現在生成的圖片還得到output文件夾找,非常不方便是吧,能不能實現在運行腳本后,生成的圖片自動放到剪貼板呢?當然可以!我們可以用pywin32這個package,他提供了一套用python封裝的win32庫(windows應用開發的一套底層庫)接口。
from io import BytesIO import win32clipboard as clip import sys, platform, win32con if "Windows" in platform.platform() or "windows" in platform.platform(): # 打開字節流 output = BytesIO() # 打開剪貼板 clip.OpenClipboard() # 先清空剪貼板 clip.EmptyClipboard() # 將圖片保存到字節流 target.save(output, format="BMP") # 去掉字節流中的前14個字符(BMP位圖文件頭) data = output.getvalue()[14:] # 將圖片放入剪貼板,這里是不帶文件頭的數據 clip.SetClipboardData(win32con.CF_DIB, data) clip.CloseClipboard() output.close()
然后再運行下我們的emofigther
python emofigther.py "Ctrl-V大法好!"
然后找個地方試試Ctrl-V,驚喜不驚喜,意外不意外?
至此,我們已經用python輕松愉快的學會了制作一個斗圖工具了
本章節的所有例子,都可以在我的GitHub上找到:sources of example-1
等等,有BUG!
好吧,目前我們的小工具可能還存在著一些小小的瑕疵:
文本是左對齊的,如何進行居中呢?
當字數過多的時候,怎么保證能全部顯示呢?
底圖與表情都只有一款,好單調啊,都斗不過別人了,咋辦呢?
恩,為了解決這些問題,我們——————
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42091.html
摘要:大家還記得上一篇文章來學點吧從一個斗圖小工具開始中最后提到的幾個問題么,我們這次就來解決一下其中難度最大的一個文本居中看,我把代碼優化了上次之后,我偷偷把代碼優化了,現在的方法長這樣創建表情圖調試用生成表情包對的,我把那些老長老長 showImg(https://segmentfault.com/img/bVbeDVL?w=250&h=250); 大家還記得上一篇文章0.來學點Pyth...
摘要:在上一篇文章圖工具的優化實現文本居中中,我們已經實現了對插入字體的左中右對齊顯示,那因為上期文章混進去了不少語法講解,所以后面的內容就順延到這啦,哈哈哈。 showImg(https://segmentfault.com/img/bVbeIu4?w=250&h=250); 在上一篇文章【圖工具的優化——實現文本居中】中,我們已經實現了對插入字體的左中右對齊顯示,那因為上期文章混進去了不...
摘要:我是布小禪,一枚自學萌新,跟著我每天進步一點點吧說了這么多暫時也就夠了,那么就告辭吧 文章目錄 ?? 前言 ??? 作者簡介 ??文件操作?1??、open函數...
摘要:該課程旨在面向有抱負的工程師,從人工智能的基本概念入門到掌握為人工智能解決方案構建深度學習模型所需技能。 showImg(https://segmentfault.com/img/bVbkP5z?w=800&h=664); 作者 | Jo Stichbury翻譯 | Mika本文為 CDA 數據分析師原創作品,轉載需授權 前言 如今人工智能備受追捧,由于傳統軟件團隊缺乏AI技能,常常會...
閱讀 1367·2021-09-13 10:25
閱讀 552·2019-08-30 15:53
閱讀 2265·2019-08-30 15:44
閱讀 2024·2019-08-29 17:20
閱讀 1593·2019-08-29 16:36
閱讀 1794·2019-08-29 14:10
閱讀 1784·2019-08-29 12:44
閱讀 1165·2019-08-23 14:13