為解決工作中的實際問題,python和c#應該選擇學習哪一種?

編程接近零基礎,想在python和C#之間選擇一種語言學習,主要是為了解決工作中的一些實際問題,一是想寫一個簡單的固定資產管理軟體,方便自己統計和管理;二是想設計一個web頁面,向基層用戶收集數據。純粹實用主義者,請教應該選擇哪種好。主要兩個方面比較迷茫,一是python能否向c#那樣有可視化的設計界面,比如直接在窗體上面添加按鈕之類的;二是c#能夠實現我說的第二個目標


VS2013的C#利用LightSwitch剛好可以滿足你的需要——做簡單的管理系統。直接上就好了,超容易的,專門為不會編程的人設計


資產管理可以做web版。


用 C# 或 Python 都可以完成,我個人認為 Python 比較輕便。

可以先看看 Python簡明教程 或 Dive into Python 之類的書了解下 Python 語法,然後看看 可愛的Python(Karrigell,不過裡面的版本相對老些)或者 Django Book(Django。功能全面,結構清晰)或其他各種框架。

資產管理確實可以用 web 來寫,運行訪問在本地即可,收集數據如果拿 Django 寫的話可以很方便的部署在 PaaS(如SAE 文檔中心 - 快速指引)或VPS(如 DigitalOcean digitalocean.com 的頁面)。對應的數據處理可以考慮 Excel + SPSS/SAS 等,也可以考慮用 Python 的 Numpy + Matplotlib。

Python的桌面開發相比web開發可選擇的方案要少很多,PyQt相對來說比較大,不過結構清晰,後續開發方便,界面好看;wxPython 比較簡單,但是想做到結構清晰需要一定的功底,因為 GUI 程序將界面與功能分離新手來說還是比較麻煩的;Tk 是是 Python 自帶的標準庫,功能相對簡陋,沒怎麼研究過。以上三個界面庫都是跨平台的,除了 PyQt 你可能需要稍留意下它的版權聲明,別的都可以任意使用。當然 Python 還存在別的桌面框架,個人感覺沒有以上三個用的人多。

至於設計界面,據我所知,Qt 和 wx 均有可視的設計界面,Tk 不太清楚。如果功能不複雜或者主要為數據分類、展示之類的服務,可以考慮 TraitsUI,詳見 用Python做科學計算。

如果要用到資料庫的,需要根據需求來看,簡單的任務可以直接用 SQLite 解決,好處是 Python 內置了相應模塊,輕便易學。MySQL、PostgreSQL 也是不錯的選擇,不過額外需要安裝。

Python 最方便的是有無窮多的庫,一旦上手你就知道了。知乎里已經有很多帖子有討論。

如果你是在用 Linux/GNU 那毫無疑問 Python 就是第一選擇。如果你在使用 Windows 那二者均可,特別是如果寫 Windows GUI 程序,C# 會顯得很簡單,配合 WPF 特效會顯得很炫。當然 Python 也能寫出來看起來比較炫的程序,比如用 kivy 作為框架,甚至你都能把他運行在 Andoroid 手機上,但這個更適合折騰,不符合你的快速完成任務。

C# 完全可以完成你說的第二個要求,準確地說是http://ASP.NET。


Python,上手容易。用了C#基本就和微軟的東西的綁定了。從這個角度來說,Python的自由度大得多。


首先是都可以。

其次是如果你機器上已經有 VS 了,直接用 C# 寫不會太難;否則的話 Python 沒那麼多環境要求。

第三是 C# 寫 web 還要跑個 IIS 才行,Python 隨手就能跑起來。

Python 有諸多缺點,但最大的好處是起步代價低 (*),環境工具什麼都可以沒有,隨時就能開始做事。作為知名「膠水語言」,Python 是真正為了解決工作中碰到的問題設計的。C#……是為了創造工作機會設計的。

* 起步代價低 的含義是:當你還在裝 VS 的時候我 Python 東西已經上線了。


強烈不建議Python,個人愚見。我和提問者情況很類似,非IT專業人士,寫點程序純粹為了工作方便。

1.C#可以利用世上最強大的IDE Visual Studio,每一個類都有自動提示,而且命名規範。極大的降低了錯誤率,PYTHON簡直就坑爹,即使你記的住類名和方法名,也未必能拼寫對,因為有的方法是大寫,有的是小心,C#即使寫錯了,也會糾正過來。PYTHON的IDE在VS面前弱爆了,和記事本差不多,而且VS調試太強大了,可以讓你少些不少為了調試而寫的輸出代碼。

2. 很多人的英語水平看國外技術文章還是很有壓力的,尤其是你對編程還不是很了解的情況下。C#文檔和幫助都是中文的,並且幾乎每一個類和方法都寫了DEMO,可以讓你很快入門,即使你從網上複製的代碼,你不明白類和方法是什麼意思,只要滑鼠放上去就會提示,而且是中文的。

3. PYTHON版本太亂了2.x和3.x,完全不兼容,你好不容易找到了一個庫,結果和你的版本不匹配,而且2.x之間也不完全兼容。

4. C#編寫winform和webform,你一兩個小時就差不多了能做出個樣子來,可以極大提高興趣和自信心,不會html和js也可以做網頁,PYTHON你要學的太多了,尤其是mvc,其實對小應用來說很繁瑣。有人說IIS的問題,至少你知道你需要裝IIS就能運行,而Python一下給你5種選擇,對不起,我真的沒興趣去研究這5個到底哪個適合我,我也不想運行了一段時間,才發現我當初的選擇是錯誤的。


我是搞財務的,不會C#,前陣子工作中遇到個需求用PyQt寫了個小工具解決了,畫界面用的PyQt自帶的Designer,挺方便的。所以我的建議是你挑個順手的用就行了,不用糾結用哪個語言。


Python是弱類型語言,C#是強類型語言,Python的內置模塊功能強大,文檔清晰,易於掌握,C#MSDN浩瀚如海,命名空間龐大,語言嚴謹複雜。從學習難度考慮,選Python。C#依賴windows, .net framework,易於構建GUI,運行.exe文件,易於發布。Python依賴interpreter,往往依賴外置模塊,Python2對中文支持是pain,Python3模塊則較少,使用PyQt等也容易開發出GUI卻小眾討論問題則不易,使用django, flask等框架卻易於開發出web。從windows平台發布角度難易考慮,首選C#,從開發界面難易,流行程度就業難易考慮則優選C#,從快速開發開源角度考慮,優選Python。


用Python啊,語法簡潔,庫多,容易學


第二個需求用金數據網站就可以了,完全不需要自己開發。這個網站非常好用


建議題主考慮一下OpenERP - Beautiful Business Applications

這個系統的基礎語言是python,初始學習曲線稍高,但是入門後,完成自己的模塊非常容易,如你所說的資產管理模塊,也許1~2天就可以實現了。

現在準備發布自己的website builder系統,配合強大的後台,實現你的數據搜集功能沒有任何問題。

當然,還需要考量的是,如果你的需求僅僅是這兩點,那麼這個系統又稍顯龐大了。


我用的3.4,被python的exe打包折騰了整整一下午,雖然很簡便,但是果斷放棄了,很亂很雜


推薦閱讀:

走迷宮——來做道題?
C++中關於跨平台中子線程式控制制的一些心得(2):用於線程的同步的Async容器
怎樣在多台Web伺服器上共享Session
LCUI 1.0 Beta 發布
GacUI 動畫系統 (3:漸變動畫)

TAG:學習 | Python | 編程 |