在我五年級的時(shí)候,就開始接觸編程了。雖然說有補(bǔ)習(xí)班、有些學(xué)校有教,但因?yàn)槲腋赣H說編程非常的重要,每一個(gè)程序都需要編程,因?yàn)楫?dāng)時(shí)我對計(jì)算機(jī)很有興趣(經(jīng)常拿U盤重新安裝操作系統(tǒng),Windows XP、Vista、7、8、8.1、10 都有裝過),也因此我漸漸的也想學(xué)會(huì)編程,但我又不想讓父母花錢報(bào)興趣班,浪費(fèi)錢。 真正開始接觸編程是因?yàn)樵趫D書館里看到有關(guān) Scratch 編程的書,于是我就把它借了回來,然后再自行學(xué)習(xí),用 Scratch 寫了幾個(gè)小游戲。 但我父親又說了,Scratch 并不算真正的編程,真正的編程是需要寫代碼的(其實(shí) Scratch 應(yīng)該是算編程的了),我當(dāng)時(shí)了解到了 Python,但卻沒有去學(xué)它,因?yàn)橄訔壦[藏了太多細(xì)節(jié)、運(yùn)行效率低、生成可執(zhí)行文件難(我現(xiàn)在就很喜歡用 Python 了),于是我在圖書館里找到了有關(guān) C++ 入門的書籍(強(qiáng)大的圖書館),按照教程安裝了 Dev-CPP(因?yàn)槲覒械迷俑阋粋€(gè)我之前用的 Dev-CPP wine 版,所以直接用小熊貓 Dev C++ 了),寫出了第一個(gè) C++(使用代碼編寫)的程序——經(jīng)典的 Hello World,當(dāng)我看到它運(yùn)行時(shí),喜悅?cè)f分,雖然簡單,但卻是我編程路上的一大步,同時(shí)也拿 C++ 寫了一些好玩的應(yīng)用(在截圖中我把代碼硬生生把 Windows 特性刪除并在 UOS 運(yùn)行,所以效果和 Windows 是不一樣的)。 #include <iostream>using namespace std;int main(){ cout<<"Hello World!"<<endl; return 0;} 但是在 C++ 的學(xué)習(xí)過程中遇到了瓶頸,卡在了 方法、類、指針這里,然后書就沒講到更多的內(nèi)容了(所以我現(xiàn)在的 C++ 水平就停在這里了),同時(shí)我又迫切的想要寫 GUI 應(yīng)用,網(wǎng)上搜的教程代碼又長、又難理解(對于我而言,用 win32api 創(chuàng)建窗口是很難理解),就去 搞其它語言了。 一開始接觸到了 Visual Basic 6(后面簡稱 VB6),雖然看起來很好用,但與 C++ 的語法區(qū)別有億點(diǎn)大,所以就沒主要學(xué)了。 但我又了解到一個(gè)新的語言——C#(不讀 “C井”)——寫 GUI 方便(有圖形界面拖拉控件)、效率也較高、與 C++ 語法接近,于是我就認(rèn)真學(xué)習(xí)了 C#,制作出了很多有趣的工具和一些小游戲,甚至寫程序來參加比賽——當(dāng)然就沒有結(jié)果了。 但是學(xué)習(xí) C# 沒多久,就遇到了疫情,然后就接觸到了 Linux,因?yàn)榈绞褂?Ubuntu 的時(shí)候,我在盡可能的用 Ubuntu,我又了解到了 wine,于是一開始將我寫的 C# 應(yīng)用 wine 到 Ubuntu,居然成功了!雖然成功了,但是配置 wine 的過程還是很復(fù)雜。 沒過多久,就接觸到了 deepin 以及一個(gè)高級的東西:Mono——能叫做可以在 Linux 上運(yùn)行的 .net framework,于是一開始我嘗試用 Mono 運(yùn)行我的 C# 應(yīng)用——成功了,但是復(fù)雜的應(yīng)用其實(shí)是不可以的。然后還了解到了 Monodevelop(可以理解為 C# 的 IDE),于是嘗試用 Monodevelop 編寫 C# 應(yīng)用,但 deepin 的源里其實(shí)是沒有的,Ubuntu 才有,所以需要切換系統(tǒng),然后嘗試寫一個(gè)簡單的 C# GUI 應(yīng)用,就遇到了很多問題,例如說一個(gè)文本框的賦值問題,因?yàn)檫@種種的區(qū)別,導(dǎo)致我就放棄了 Monodevelop 來編寫 C# 應(yīng)用,采用在 deepin 上使用 Windows 虛擬機(jī)來編寫。 但是我肯定不安分的,還試過 wine 一個(gè) Visual Studio 2010,因?yàn)槲?strong>非常想寫一個(gè) Linux 應(yīng)用并上傳到星火應(yīng)用商店(現(xiàn)在完成了),所以我在尋找一個(gè)適合我自己的語言來編寫,于是嘗試了很多語言,有網(wǎng)頁前端——html、css、javasscript和后端——php、撿回了之前的 C++,但都不太適合我,于是我經(jīng)過深思熟慮,選擇了我現(xiàn)在正在使用的語言——Python 經(jīng)過一段時(shí)間的學(xué)習(xí)后,我已經(jīng)掌握了 Python 的基礎(chǔ),嘗試實(shí)現(xiàn)我的目標(biāo)——制作一個(gè) GUI 應(yīng)用,于是學(xué)習(xí)了庫 tkinter,然后我開始練習(xí)寫一點(diǎn)小的 GUI 應(yīng)用,當(dāng)我真正找思路寫應(yīng)用來投稿到星火應(yīng)用商店,還是很有難度的,我敲定了第一個(gè)主題——deepin-wine 運(yùn)行器,因?yàn)?strong>配置 wine 還是比較復(fù)雜的,如果可以簡單一點(diǎn)就更好了(Crossover 收費(fèi),PlayOnLinux、winetricks 下載慢,但我又沒了解到有 Vek),所以寫了這個(gè)應(yīng)用,雖然寫出來并投稿后 Star 的數(shù)量比較少,但我也非常高興了。 我還寫了一個(gè) deepin-wine5 打包器湊成一套,因?yàn)榇虬€不是很不方便,解包后再重新打包很煩,而且還很容易有很多錯(cuò)誤,例如我第一個(gè) deepin-wine 打包應(yīng)用就因?yàn)?strong>打包問題被星火打回了好幾次(當(dāng)時(shí)還是沒了解到 Vek),所以我就把它寫了出來。 到后來,UOS 家庭版就橫空出世了——系統(tǒng)自帶了 Android 環(huán)境,就不用安裝其他 Android 模擬器,如Xdroid、Android X86 等等(那時(shí) deepin 還沒有),這么好玩的東西干嘛不看看。于是我安裝了 UOS 家庭版,結(jié)果發(fā)現(xiàn) UEngine 應(yīng)用安裝是有門檻的,安裝沒有這么簡單,所以我就打算寫一個(gè)可以更加簡單安裝應(yīng)用的運(yùn)行器,通過 UOS 論壇的教程提供的安裝方法為基礎(chǔ),寫出了第一個(gè)版本。 然后這個(gè)應(yīng)用的關(guān)注度也比較高,所以我在期末考試前也在進(jìn)行更新(畢竟不會(huì)的就真不會(huì)了),以便有更好的使用體驗(yàn)。 安裝數(shù)(截止于 2022/1/13 20:04):
在此過程中的我也反應(yīng)過來,因?yàn)?UOS 家庭版的出現(xiàn)才讓我使用這個(gè)語言寫這個(gè)目前數(shù)據(jù)最好的項(xiàng)目,天時(shí)地利人和,何樂而不為?同時(shí)也讓我在此過程中得到了很多幫助,讓我自己做得更好,也讓我懂得了更多!雖然修復(fù) bug 是痛苦的,但是發(fā)布后大家給我的點(diǎn)贊,下載數(shù)、安裝數(shù)、Star數(shù)蹭蹭蹭地往上漲,我還是非常開心和自豪的! 彩蛋
old_ProgramList = now_ProgramList 修復(fù)后的代碼 old_ProgramList = now_ProgramList[:] # 因?yàn)?nbsp;Python A 變量賦值到 B 變量,只是改變 B 變量的地址,不是創(chuàng)建新的地址再拷貝賦值,所以在 now_ProgramList 變量修改后 old_ProgramList 變量也會(huì)修改# 因此值要進(jìn)行拷貝創(chuàng)建新的地址才行(在后面加上“[:]”),結(jié)合實(shí)際情況使用淺拷貝即可 然后我把這個(gè)事發(fā)到一個(gè)我們的同學(xué)群里,有一位同學(xué)跟我說:
(下面的內(nèi)容需要開啟開發(fā)者模式) 安裝 Python3(系統(tǒng)默認(rèn)安裝): sudo apt install python3 安裝 Python3 的 IDE: sudo apt install idle 安裝 Mono: sudo apt install mono-devel
|
|