1. 程式人生 > >初試Python語法小試牛刀之冒泡排序

初試Python語法小試牛刀之冒泡排序

循環 bsp == 技巧 系統 折騰 部門 分享 排序

  

  Python很火,心裏很慌,沒吃過豬肉,也要見見豬走路。

  看了幾天Python的語法,大概初步了解了一點點,https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
  想綜合起來練習一下Python的語法,就從最簡答的冒泡排序開始吧。

  鑒於Python的靈活性,甚至可以不需要類,不需要main方法,僅僅寫個方法然後執行方法就可以運行,
  以下簡單嘗試從類Class的角度來封裝一個最最簡單的方法,並通過main函數來指定調用

# 自定義測試類
class MyTestClass:
    
def __init__(self,s): self.s = s def bubble_sort(self,s): #for i in range(len(s)): for i in range(0,len(s)): #for j in range(len(s)): for j in range(i+1,len(s)): if s[i] < s[j]: temp = s[i] s[i]
= s[j] s[j] = temp return s # 定義main方法 def main(): # 測試排序 s = [8, 9, 1, 3, 5, 7, 6] obj = MyTestClass(s) print(類實例的屬性) print(obj.s) print(set排序之前的結果) print(s) obj.bubble_sort(s) print(set排序之後的結果) print(s)
for i in range(len(s)): print(s[i]) if __name__ == __main__: main()

  運行結果

  技術分享

  東西手來還是折騰了一陣子的,冒泡排序本身沒有任何可以說的,主要從語法角度來看待Python
  1,set集合,使用實例:s = [8, 0, 1, 3, 5, 7, 6]
    set數據,Python語法無需聲明,直接使用(初始化即可),其元素是不可重復的。
  2,Python中函數第一個參數都是self,構造函數名稱固定是__init__
  3,for循環遍歷數組 for i in range(len(s)),遍歷方式,if判斷後面都要接冒號:,都跟傳統的編程語言語法有一些差異。

  不得不服部分新人的學習能力,前段時間還在寫C#,然後他自己覺得沒啥意思,他的Leader安排他寫Python作一些功能,然後嘩嘩啦啦就開始了,
  抽空交流之後發現人的Python已經熟練掌握了,正常的業務用Python實現起來毫無壓力,不由得亞歷山大,自己這點老本也吃不了幾天了。

  記得2010年剛工作那會,部門就開始推廣Python,雲計算,那時候是誰願意,公司提供資源學習,不強求成果,可惜當時無遠見,拒絕了,現在想想是多麽的血淋淋。
  雖然那時候對這些東西都沒有概念,可見世界500強的領導也不是吃幹飯的。
  曾經吹牛逼說,一門語言學會for循環,if else 判斷之後就可以動手了,剩下的就是庫函數的掌握以及技巧問題了,現在似乎該為當初吹的牛逼買單了。

  

  反思總結一下面對陌生技術的學習思路,更多的是一種道先行,把術放在後面,相信一開始都是從hello world入門的,而不是從迪傑斯特拉算法開始的。
  1,個人認為(僅僅是個人認為)搭環境沒那麽重要,環境自己搭有問題的話,可以先讓人幫忙搭建起來,盡快盡快盡快動手,否則容易受挫,電腦玩的溜溜的人也不見得一開始是從背鍵盤字母,裝系統開始的吧。
  2,先不要死磕概念和宏觀上的東西,概念上的東西都是後面慢慢動手多了才理解的,在學校的時候,學了一點J2SE的語法,就開始死磕Java的那套SSH,最後第一份工作還是做了C#
  3,了解了最簡單的語法之後,用自己認為最熟練最簡單的方式來動手,記得當年死磕java中main函數的參數String[] args的含義,花了好大好大的功夫,實話說到目前也無果。
  4,想辦法實踐,盡管可能是工作中沒有直接用到的,用A方法(語言)實現的東西,想辦法用新學到的東西來實現一遍。

初試Python語法小試牛刀之冒泡排序