簡體   English   中英

用於業余愛好者程序員的Python(幾個問題)

[英]Python for a hobbyist programmer ( a few questions)

我是一個業余愛好者程序員(之前只在TI-Basic中),經過多次,很多,我自己的辯論,我決定學習Python。 我沒有大量的空閑時間自學一百種語言,我所做的所有編程都是供個人使用或分發給需要它們的人,所以我決定我需要一種優秀,強大的語言來擅長。 我的問題:

  1. python是否足夠強大,能夠處理典型程序員在其關閉時間內可能執行的大多數操作? 我想到了基於桌面游戲的用戶輸入,制作小游戲,自動化安裝過程以及構建交互式網站的復雜統計數據生成器,但這些行可能有一百種

  2. python是否能很好地處理網絡任務?

  3. python源可以被混淆,還是它本質上是開源的? 我問這個的原因是因為如果我做了一些很酷的東西並分發它,我不想讓一些白痴腳本兒童編輯他自己的名字,並說他寫了它

  4. 與其他語言相比,python有多受歡迎。 理想情況下,我的語言在沒有極端困難的情況下在網上找到的幫助很好而且很有用,但並不常見,因為每個有電腦的白痴都知道python。 我喜歡知道一種略顯模糊的語言的想法。

非常感謝您提供的任何幫助。

python是否足以處理大多數事情?

是。 期。 研究EveOnline游戲了解更多信息。 看看pygame框架。 免費使用谷歌查找更多。

python是否能很好地處理網絡任務?

是。 查看Python Web框架和Twisted框架的數量 隨意使用谷歌搜索Python網絡。

python源可以被混淆嗎?

沒有用。 這不是C.

與其他語言相比,python有多受歡迎?

看看TIOBE指數

我認為Python非常強大,可以做很多事情,但就像Java和C ++一樣,它通常依賴於優秀的第三方庫。 我來自Java背景,但是使用Python做很多事情,這是一個有趣的旅程。 我做過統計和自動化等事情,不確定用戶界面,雖然這通常取決於工具包而不是語言。

Python網絡運行良好。 我不知道我是否會用它來構建一個快速的算法交易系統或VOIP應用程序,但是對於大多數意圖和目的,特別是在更高的抽象級別,它很好並且易於使用。 您需要外部庫來處理SSH或FTP等事務。

Python非常受歡迎,並且擁有非常好的在線支持,活躍的社區以及使用它的大公司(如Google)。 我找到了正式的在線教程和參考資料。

我不得不說,我不同意“每個白痴都帶電腦”這一行。 知道一種語言並正確使用它之間存在差異,這對每種語言都是正確的,甚至是自然語言:) Python確實有很多功能元素,對於來自程序背景的人來說並不是那么簡單,所以總會有增長空間。

與C和Java等語言相比,Python的一個問題是它不是靜態類型的。 這使編寫代碼變得更快 ,但也使得更容易犯錯誤,這些錯誤可能非常討厭調試。 例如,同一個變量可以包含某個點的String引用,以及對某個其他點的字符串列表的引用。

  1. 絕對。
  2. 什么類型的網絡? 它有socket,http,xml,smtp / pop,telnet等內置功能。
  3. Python混淆不會像編譯語言那樣好。 通常這不是問題。
  4. 它是stackoverflow上第9個最受歡迎的標簽 ,因此有很多可用的幫助。

python是否足夠強大,能夠處理典型程序員在其關閉時間內可能執行的大多數操作? 我想到了基於桌面游戲的用戶輸入,制作小游戲,自動化安裝過程以及構建交互式網站的復雜統計數據生成器,但這些行可能有一百種

當然。 Python是一個很好的工具,除了自動化安裝過程之外的所有這些,它可能是正確的工具,但更有可能正確的工具可能由你自動化的具體決定。

python是否能很好地處理網絡任務?

是。 你會想看看扭曲

python源可以被混淆,還是它本質上是開源的? 我問這個的原因是因為如果我做了一些很酷的東西並分發它,我不想讓一些白痴腳本兒童編輯他自己的名字,並說他寫了它

“開源”是指代碼的許可,而不是源代碼的可見性。 隱藏Python源代碼並不是特別可能,並且反編譯Python字節碼的結果將導致比C語言中的等效工具更易讀的代碼。 不要擔心這個! 如果他們願意違反法律,你就無法阻止他們偷你的車或你的電腦,你不能用任何語言對你的代碼做同樣的事情。

與其他語言相比,python有多受歡迎。 理想情況下,我的語言在沒有極端困難的情況下在網上找到的幫助很好而且很有用,但並不常見,因為每個有電腦的白痴都知道python。 我喜歡知道一種略顯模糊的語言的想法。

這是一個無法回答的問題。 Google會根據不同的指標為您提供大量相互矛盾的結果,其中大多數都很有用。 你也有點傻了;)


就學習材料而言,我推薦如何像計算機科學家一樣思考 ,這是一個很好的文本,不會假設任何現有的編程知識。 它可以在線免費獲得,或者如果您願意,也可以購買打印副本。 (不要費心學習3.x。沒有足夠的圖書館支持來做你想做的很多有用的東西,而且當它拿起它將是輕而易舉的;它與2.5 / 6/7沒有太大區別。)

  1. 可能是。 也許統計數據會有點慢,也許游戲取決於什么類型的游戲,但通常性能足夠好,並且你在實際編程上節省了大量時間。 如果你真的需要性能,你可以在C中創建一個模塊,但通常會有一個庫來編寫你想做的事情。

  2. 我沒有使用它,但是有一個名為Twisted的框架似乎非常好。

  3. 不可以。字節碼可以很容易地反編譯,它只適用於特定版本的Python,所以你的代碼不是那么可移植。

  4. Python很受歡迎, Python Package Index有很多第三方庫。 它並不像Java那樣普及,但很多人都使用它,你可能會得到你想要的答案。

第1點和第2點:HELL YEAH。

第4點:那種。 Python擅長某些網絡資源。 它不是Java或C ++。 只需對所有內容使用zlib(zip庫)和pickle(序列化),如果需要IPC,請查看xmlrpclib。

第3點:不會。但是,您可以編寫C模塊(用於性能關鍵且難以復制的)部分代碼,這將使逆向工程變得非常重要。

Python可以勝任1,2和4的任務(並且更好)。

從你描述的3的最佳解決方案可能是使你的程序真正開源GPL或BSD像許可證。 通過這種方式,人們可以編輯你的超酷資源(但經常是經驗豐富的程序員,而不僅僅是腳本小子)並在此基礎上進行構建,但請留下您的名字以供后人使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM