❶ 我為什麼選擇學習python
首先我們來聽聽圖靈獎獲獎得主,Allan Perlis,說過的話,「如果一門語言沒有改變你的編程思維,那麼它不值得你去學習」。
如果這么說,我們大學的時候,學習了c,c++,java,C#,算是值得學習么?很多時候是不值得,我覺得我們大學的課程就是用java,c#,c++把"C程序設計"又上了一遍.
這是因為,學校的老師會C和java之類的,所以要跟著規矩開這門課,(這也就是為什麼,許多學校還在教vb,),這也就是為什麼,你所以為的一樣就是大家都有For都有while,都有switch..都有Class...都有int 都有float,所謂的不一樣就是用C有指針,java沒有,這就是為什麼教育是失敗的,這也就是為什麼,我目前認識的幾個編程大牛,都不是計算機專業畢業的...
python的優點:
簡單 我所說的簡單,是相比於象C和C++這樣的語言,你為了編程,要學習許多偏底層的東西.
在比如,你在學習一個新的編程範式,或者想要馬上做個例子看看,試驗某個API,如果你是寫java的,你不得不去寫一個main,寫一些構造,即使有IDE這樣的東西,能夠為你帶來代碼生成器,而我做得就是寫一段「腳本」,或者打開python互動式解釋器就行了。
這在寫演算法時就能夠表現出來,比如我要寫一個快速排序:
如果用C語言寫:void q_sort(int numbers[], int left, int right) { int pivot, l_hold, r_hold; l_hold = left; r_hold = right; pivot = numbers[left]; while (left < right) { while ((numbers[right] >= pivot) && (left < right)) right--; if (left != right) { numbers[left] = numbers[right]; left++; } while ((numbers[left] <= pivot) && (left < right)) left++; if (left != right) { numbers[right] = numbers[left]; right--; } } numbers[left] = pivot; pivot = left; left = l_hold; right = r_hold; if (left < pivot) q_sort(numbers, left, pivot-1); if (right > pivot) q_sort(numbers, pivot+1, right); } 為什麼這么長?因為除了表達快速排序的思想,你還要寫數組分區,swap交換,for i,j的多一少一,都可能出現錯誤....
def qsort(lis): if len(lis) == 0: return [] else: low = [] hig = [] for x in lis[1:]: if x < lis[0]: low.append(x) else: hig.append(x) low = qsort(low) hig = qsort(hig) return low+lis[:1]+hig 當然高手可以寫的更短:
def qsort(L): if not L: return [] return qsort([x for x in L[1:] if x< L[0]]) + L[0:1] + qsort([x for x in L[1:] if x>=L[0]]) 因為動態語言,在使用上,比靜態語言要活,你可以自由的表達,但是如果是用java,C++這樣的靜態語言,想要表達自己的思想, 就沒有那麼容易.
學習曲線python很值得你去深入研究,因為你玩得越熟,它給你所帶來的回報越高,人們常說,java初學者和java大師寫出的代碼差不多,但是python初學者,python高手寫出來的代碼,簡直就是天壤之別。
就拿簡單的階乘函數吧.
新手可以這么寫:
def factorial(x): if x == 0: return 1 else: return x * factorial(x - 1) 高手這么寫:
f = lambda x: x and x * f(x - 1) or 1 FP函數式編程 python是面向對象的,也可以面向過程
但下面我們用「函數式編程」來談談它的好處
下面是一個計算器的例子,《大話設計模式》的第一章,就是使用這個例子來闡述oop和設計模式的強大,
首先一種被認為糟糕的寫法是這樣的:
(以下代碼來自啄木鳥社區,如果有版權問題,請告訴我,我馬上刪除)public class Calculator { static public double Foo(char op, double x, double y) { switch(op) case '+': return x+y; break; case '-': return x-y; break; case '*': return x*y; break; case '/': return x/y; break; default: throw new Exception("?") } } 恩,不可重用,不可維護,不可擴展,不夠靈活。
那些相信「設計模式」和java的狂熱分子,要開始改這個代碼了.
先來一個介面:
❷ 想找一份Python學習心得
你是想找什麼樣的學習心得呢,是畢業了還是想從中找些學習經驗呢,這個你可以去千鋒的技術論壇看一下。上面很多學員感言,學員故事啥的。並且還有技術教程和視頻資源,都可以的。
❸ 風變編程python課學習後的效果怎麼樣,有沒有聽過課的朋友說說具體的感受
最近一直在學習風變編程,個人感覺學習的效果還是比較好的,雖然我沒有學習過編程,屬於毫無基礎的那一類人,但是聽完不少課程之後,沒有出乎意料的枯燥感,許多困難的語法都在老師的質量講述下化繁為簡,而且還有配屬助教,遇到不懂的問題,助教都會第一時間進行耐心解答,期待後續學習完成後的成效。
❹ 風變python課程怎麼樣有沒有學完的小夥伴來聊聊感想唄。
我現在就正在學風變python課程,我上完感覺還挺好的,是很有意思的一種編程課,以前真的沒想到編程還能用這種輕松有趣的方式來學習,我覺得接受起來不困難,完全能學懂。風變python課程的助教老師我感覺也挺好,沒有弄懂的地方,或者是課後遇到什麼問題,助教老師都會耐心地幫你解答。
❺ python軟體開發好學嗎
今天給大家推薦一篇前輩自學Python的總結文章。希望你從中有所收獲。
我不是技術類在職人士,完全屬於崗外人員。由於長期從事非技術類崗位的工作,無論對web開發還是數據分析,相關知識都比較欠缺。
另外由於工作比較忙,不能保證每天都有機會使用互聯網,我看到的是:很多學習python的朋友都要比我有優勢。
這便是我開始學習python時的情況。
推薦學習《python教程》
一、徘徊期
最開始了解python這門語言大概是2016年,當時想能換一個薪資更高的工作,動過學python的念頭,但是由於各種工作上的原因,這件就被無限期擱置了。
知道半年多以前,辭職在家,這一閑下來,就想起了Python。於是就重新撿了起來。最開始關注了很多公眾號,大概對Python各種應用有了一個了解。於是,開始了我的python學習之旅。
二、入門
於是我開始搜尋各種Python相關的資料,在網上找視頻,加社群。還有去了解各種開發工具。
我逛遍了所有的Python平台,知乎、廖雪峰,騰訊課堂,網易雲課堂等等。網上的視頻、書籍、博文等學習資料可謂鋪天蓋地,但畢竟我們的學習時間是有限的,不可能去一一嘗試,幾個月下來,資料收集了上千個G,視頻也卻看不了多少。
也有試過買書學習,《python從入門到精通》《Python學習手冊》《Python從入門到放棄》等等。
然後發現,這種方式真的不適合我,自學終究對於一個沒有接觸過,而且大學沒有學過計算機編程的我來說,確實有點困難。
於是我一邊自己混跡論壇,一邊看書,一邊結合自身的情況購買了Python的課程。
買在線課程的最大作用不是它提供的視頻和資料,而是後續的服務和那個背後的資源。這以後不僅對以後的Python進階有幫助,有時候還可以拿到大神的筆記。幸運的話,甚至可以混個比較好的工作推薦。
目前來看學習python主要有四個方向:web開發、爬蟲、小程序開發、桌面程序開發。個人更喜歡爬蟲程序,但是聽大家討論說,Python在web開發領域還是比較有優勢,而小程序、桌面程序、以及現在比較火的機器學習,則需要大量的理論和技能基礎、入門門檻較高。
所以我選擇了比較好就業的爬蟲和python Web。
其實Python的應用范圍十分廣泛,包括人工智慧、運維、測試、後台開發、大數據分析等。這位前輩因是自學,沒有人帶,所以只能選擇比較淺顯的Python web。
三、學習體會
最後分享一點,我自己的學習心得和體會。
這是自己在學習過程中的總結。
1.有計劃的學習和心態
我們要為生活中的各種事情忙碌,並不是每天都能擠出時間來學習,但是我們決不能三天打魚兩天曬網。
如果遇到某些東西中斷了學習,那就想辦法恢復學習狀態,不輕易放棄。後面一定會看的到自己的成長。
2.細化目標
在學習過程中,最好能夠制定比較細小的目標,然後不斷更新,像做一個web網站、開發一個小游戲之類的中 期目標,個人認為並不適合每一個初學者。
根據自身的學習程度和技能水平不斷調整,例如在初期設定「搞清楚is和==之間的關系」、「學習模塊調用」,到後期調整 為「寫一個小型爬蟲」、「清洗並分析一組數據」之類的目標。
3.多練多看
「練」是指在學習過程中要勤於動手寫代碼,在學習初期,哪怕是照抄書本上的代碼也可以加深對程序的理解。
「看」是指要善於閱讀和學習其他人優秀的代碼,這樣才有可能慢慢體會到python真正的精髓所在。
這些常用功能給程序員帶來的方便,是其他框架所不能替代的。
四、開發工具
最後在分享一下我積累的開發工具:
IDLE: python安裝自帶工具,被很多人詬病,但我覺得它安裝簡單,反而很適合初學者。如果實在不喜歡,可以在學習一段時間後改選其他的工具。
pycharm:專業級神器,缺點是比較笨重,平時寫小程序的話一般不用。
sublime text:輕量級神器,我的最愛,非常喜歡它的界面。
Anaconda:集成了大量數據分析相關庫,安裝方便,另外它的調試功能據說也比較強大。缺點是界面比較難 看,代碼補全功能也不完善。
Ipython:又稱jupyter,Anaconda自帶,我最近才開始使用,能夠實時查看代碼輸出(這一點也很適 合初學者)。
❻ 如何學習Python的一些總結
C++、Java乃至C#都可以看做是同一類型的語言:C++還算靈活,但紛繁復雜的語法使得生產效率低下,Java提高了生產效率,卻損失了靈活性;C#算是在生產效率和靈活性平衡之間做得不錯了,但是還是不夠的,要不Boo語言之父就不用憤而著Boo了。Python首先是一種動態類型和強類型語言,動態類型意味著你不再需要為每一個變數的類型做無數次的聲明,因為編譯器會幫你做類型判斷,它會跟根據變數的賦值來決定變數的類型。強類型則是意味著你不能將一個string當成一個int來用,除非你顯式地轉換它。
Python本身是結構緊湊的,因為space在C++、Java、C#是會被忽略的,而且還有"{}"去界定code block,那麼如果你喜歡,你就可以將所有代碼寫在一行上,寫得多麼讓人暈頭轉向都行。
中是不可能出現的,因為在
中只有一種分隔符,就是冒號":",同時通過縮進來區分code block,或許你一開始會對這樣的方式有點不習慣,但是到了後來,你會發現這樣的方式會讓你獲益非淺,因為你養成了一種很好的代碼風格。
別以為Python是一種很學院派的語言,盡管很多人認為它十分適合作為學習編程的入門語言。事實上,
Python不僅很適合初學者學習編程,而且還是一種功能強大的語言,你可以用它來做其他語言能夠做的任何事情。而Python本身也幾乎無處不在,
Python編寫的程序可以在各種主流的操作系統中運行,甚至於Palm。哦,差點忘了,Eric Raymond還告訴我們說黑客必須掌握四種語言,首推就是Python了。
,當然如果你一天都不可以離開.NET的話,就從IronPython開始學習Python吧。
與C++、Java乃至C#相比,用Python編寫並執行這個經典程序是不是要快得多呢?呵呵~~~如果我現在就下定論說,
Python的生產效率很高的話,你已經會罵我騙人了。
好,稍安毋躁源碼天空
,咱們再來點有實際意義的代碼吧。不過在此之前,你得先去下載兩個十分有名的類庫:wxPython和Twisted。下載並安裝完了嗎?好,我們開始EnjoyPythonwith you in ten minutes之旅吧。
fromwxPython
.wximportwxPySimpleApp,wxFrameapp=wxPySimpleApp()frame=wxFrame(None,-1,"HelloWorld")
❼ 如何學習Python總結之談
學習python主要是自學或者報班學習的方式,但不建議自學。
如果想通過學習python改行,那就需要明確一下自己的方向。因為python編程有很多方向,有網路爬蟲、數據分析、Web開發、測試開發、運維開發、機器學習、人工智慧、量化交易等等,各個方向都有特定的技能要求。
想學的話,當然是可以學習的。python是一門語法優美的編程語言,不僅可以作為小工具使用提升我們日常工作效率,也可以單獨作為一項高新就業技能!
python可以做的事情:
軟體開發:用python做軟體是很多人正在從事的工作,不管是B/S軟體,還是C/S軟體,都能做。並且需求量還是挺大的;
數據挖掘:python可以製作出色的爬蟲工具來進行數據挖掘,而在很多的網路公司中數據挖掘的崗位也不少;
游戲開發:python擴展性很好,擁有游戲開發的庫,而且游戲開發絕對是暴力職業;
大數據分析:如今是大數據的時代,用python做大數據也是可以的,大數據分析工程師也是炙手可熱的職位;
全棧工程師:如今程序員都在向著全棧的方向發展,而學習python更具備這方面的優勢;
系統運維:python在很多linux中都支持,而且語法特點很向shell腳本,學完python做個系統運維也是很不錯的。
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
❽ python編程的第一步感想是什麼
當然,我們可以使用 Python 完成比二加二更復雜的任務。例如,我們可以寫一個生成 菲波那契 子序列的程序,如下所示:
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
... print(b)
... a, b = b, a+b
這個例子介紹了幾個新功能。
第一行包括了一個 多重賦值:變數 a 和 b 同時獲得了新的值 0 和 1 最後一行又使用了一次。
在這個演示中,變數賦值前,右邊首先完成計算。右邊的表達式從左到右計算。
條件(這里是 b < 10 )為 true 時, while 循環執行。在 Python 中,類似於 C,任何非零整數都是 true;0 是 false。條件也可以是字元串或列表,實際上可以是任何序列;
所有長度不為零的是 true,空序列是 false。示例中的測試是一個簡單的比較。標准比較操作符與 C 相同: < , > , == , <=, >= 和 !=。
循環 體 是 縮進 的:縮進是 Python 組織語句的方法。Python (還)不提供集成的行編輯功能,所以你要為每一個縮進行輸入 TAB 或空格。
實踐中建議你找個文本編輯來錄入復雜的 Python 程序,大多數文本編輯器提供自動縮進。互動式錄入復合語句時,必須在最後輸入一個空行來標識結束(因為解釋器沒辦法猜測你輸入的哪一行是最後一行),需要 注意的是同一個語句塊中的每一行必須縮進同樣數量的空白。
關鍵字 print() 語句輸出給定表達式的值。它控制多個表達式和字元串輸出為你想要字元串(就像我們在前面計算器的例子中那樣)。
字元串列印時不用引號包圍,每兩個子項之間插入空間,所以你可以把格式弄得很漂亮,像這樣:
❾ 對python學習的總結怎麼寫
1.Python初步
Python是一種面向對象、直譯式計算機程序設計語言。公認的特點是簡單、易學、免費、開源等等。個人覺得特別喜歡Python的地方是對字元串操作特別的靈活、採取縮進的方式簡單明了(雖然網路上把這個說成是局限)、以及簡單的語法。
Python 和c類似,是順序進行的,不想visual c++是事件觸發不同模塊進行的。操作和matlab相似,有編輯窗口,也有一個運行的窗口(互動式解釋器),可以編寫之後運行,也可以在命令行模式下一條條的完成。
2.基本語法
2.1表達式、數字、/(整除)、%(取余)、**(冪)、#注釋;
2.2長整形(後面加L);十六進制和八進制(和c一樣0x和0);
2.3變數賦值(x=2)、語句、輸入輸出(input(「哈哈」)、x=input(」」));
2.4 函數:abs()、round()四捨五入
2.5 模塊:importmath
3.字元串
3.1 單引號和轉義字元
Python中單引號和雙引號的作用基本上是一致的,用雙引號一般是在所引用的字元串中包含單引號,為了加以區分所以使用雙引號。另一個方式就是用/來轉義。轉義即把後面的一個字元不按照它自身的功能處理而作為普通字元。
3.2 字元串表示
字元串拼接用『+』,例:x=『a』 y=』b』 z=x+y
字元串表示:str:把值轉換為合理形式的字元串,以便用戶理解
repr或『x』:創建一個字元串,以合法的Python表達式的形式來表示值。
長字元串: 如果字元串太長,可以用三個引號來代替普通的引號。或者在每行末用/轉義換行符。
原始字元串:r『』不會對/做轉義處理,會保持字元串內所有字元的原始書寫。
3.3 字元串格式
這個和c類似,用格式化操作符(%)來規定諸如長度、精確位、對齊等。
3.4 字元串方法
字元串方法和序列方法類似:對象.方法。常用的有以下幾種:
find:在字元串中查找子字元串,返回子字元串所在位置最左端索引,沒有則返回-1。
>>>title=』I am achinse』
>>>title.find(『chi』)
>>>8
註:還可以指定范圍:title.find(『』,0,16),即為從第一個到第16個。
join:在隊列中添加元素。
>>>sep=」+」
>>>seq=[『1』,』2』,』3』,』4』,』5』]
>>>sep.join(seq)
>>>』1+2+3+4+5』
lower:返回字元串的小寫版
>>>』I am aChinese』.lower()
>>>I am aChinese
replace:返回某字元串的所有匹配項均被替換之後得到的字元串。
>>>』This is atest』.replace(『is』,』eez』)
>>>』theez eez atest』
split:join的逆方法,用來將字元串分割成序列
>>>』1+2+3+4』.split(『+』)
>>>[『1』,』2』,』3』,』4』]
strip:返回去除兩側(不包括內部)空格的字元串:
>>>』 hh di hh 』.strip()
>>>』hh dihh』
注:還可指定要去除的字元,列為參數即可,注意只去除兩側,中間有也不會去除。
translate:與replace相似,但是只處理單個字元,優勢在於可以同時進行多個替換。
3.5 字元串與序列
字元串可以通過list函數轉換為序列,序列的操作見下一部分。唯一與標准序列不同的是不可變,不能x[2]=』c』
4.序列
4.1 通用序列操作
索引:如c的下標
分片:[3(起始):6(去除分片後剩餘部分的第一位)] [-3:-1] [0:10:2(步長)]
序列相加、相乘:+ *
in:是否在序列中,返回布爾值
長度、最大(小)值:len() max()min()
4.2 列表
4.2.1基本列表操作
元素賦值、分片賦值(很有意思的操作)
4.2.2 列表方法
對象.方法(參數)
append:用於在列表末尾追加新對象
count:統計某個元素在列表中出現的次數
extend:可以在末尾一次性追加另一個序列中的多個值
index:用於從列表中找出某個值第一個匹配項的索引位置
insert:用於將對象插入到列表中
pop:移除列表中的一個元素(默認是最後一個),並返回該元素的值
remove:用於移除列表中某一個值的第一個匹配項
reverse:將列表中的元素反向存放
sort:在原位置進行排序
===============================================================================================
這個假期在學校實驗室實習,需要用到python,不過要求不高,需要用python編的程序其實很簡單,加上之前有了c語言和delphi的基礎,只是大體看了看python的書,這里很想說的是有的時候邊學邊用,邊用邊找的學習方式非常有效率!!
python給我最大的感受就是靈活,簡單。語法非常貼近自然語言的習慣,而且對於尤其是字元串的處理非常強大,不需要自己再絞盡腦汁像准備ACM那時候那麼痛苦,非常喜歡python!!