當前位置:
首頁 > 最新 > Python學習——自己編寫的一段小代碼

Python學習——自己編寫的一段小代碼

理想三旬

 濃煙下的詩歌電台

陳鴻宇 

00:00/03:30

理想三旬 一旬過往 一旬迷惘 一旬長路

走過三旬 亦是少年

最近在朋友圈中看到一段話,一個人做某件事的時候真的是被年齡限制的嗎?7歲學跳舞,10歲學古箏,大多不情不願,反而30歲願意拿起來的人,卻是發自內心的體會其中的快樂。現實與理想的差距很大,但是正因如此,那些深陷泥沼的人,願意去嘗試一下,也算難能可貴。

Python學習——自己編寫的一段小代碼

計算機環境:

win10操作系統

pycharm工具

python 3.5.2

之前都是看著教程,抄寫代碼運行,今天嘗試了一下自己編寫代碼,結果證明還是有用的,平時抄無數遍代碼不如自己手寫一段代碼,因為只有自己寫代碼才會發現其實自己寫的時候真的有很多的漏洞,這也是對代碼語句理解不夠到位造成的。今天編寫的是一段排序代碼。常用的排序演算法像C語言中學到的冒泡排序,插隊排序等,下面提供一種偶然間想到的排序方式,雖然不知道這種方式已經有正式的名稱了。

思路:

我們對一個有限個正整數數組(無重複)a[n]進行從小到大全排列,那麼可以建立一個有限長的數組b[m](注意這個數組的長度要大於等於需要排序的數組a[n]中最大數的數組),然後將a[n]中的數放進b[m]中,即b[a[n]],然後其餘b[m]置0,這樣就可以在b[m]中將a[n]進行從小到大的排列,構造新數組c[x]將b[m]中非零數輸出即可,所構造的c[x]即為對a[n]的按從大到小排列後的結果。

代碼展示如下:

實際上我們在此構造了一個排序函數「waterorder」,我們運行一下代碼看看運行結果:

運行結果:

從結果上看,我們得到了我們需要的答案,至少將輸入的數組進行從小到大的順序進行了排序。

分析

優點——思路簡單

缺點——適用範圍太窄,需要人為的設置數組長度,同時佔用資源較多。

思維拓展:

1. 我們通過b = list(range(i))構造的數組b,在未賦值之前數組的初值是多少?

我們可以嘗試一下,構造一個長度為10的數組,然後不賦值直接列印:

運行結果:

我們發現原來是這樣去賦值的,記得這個問題在學習C語言的時候也探討過,可能二者的賦值機制是不一樣的,這個今後有機會再探索探索。但是這樣也反映了一點,我們構造的數組是有初值的,在未給其賦上初值之前隨意調用有可能會出錯。

2. 既然我們已經構造好了一個函數,那麼我們能不能在另一個python文件中調用它?

可以來嘗試一下,一般python可以通過import的方式來導入相關的庫,按理說waterorder.py這個python文件也可以通過import方式導入,先試一下我們新建的test.py文件和waterorder.py文件不在一個文件夾下面時可不可以直接調用:

調用結果:代碼提示紅色顯示有報錯

其他的庫我們都可以不用放在一個文件夾下面就能導入,這是因為我們設置了環境變數,那麼把waterorder.py放在python文件安裝位置下看看還會不會報錯:

查看結果:此時已經不報錯了。

因為waterorder.py這個文件是我自己寫的,如果以後有一樣的文件我都放在python安裝包下,如果出現重名(現在是瞎起名)就麻煩了,所以還是把他們放在一個文件夾下面,應該也不會報錯,可以正常調用:

查看結果:沒有報錯。

好了,那麼此時我們在test.py中調用一下:

但是運行後發現有報錯:

經過上網查詢,這個錯誤實際上與import的導入機制有關係:

import的導入方式有兩種,import module 和 from module import,區別是前者所有導入的東西使用時需加上模塊名的限定,而後者不要。

或者我將waterorder.py修改為Waterorder.py更明顯一點:

正確代碼如下:

運行結果:

另一種調用方式:這種方式表示調用Waterorder庫中的waterorder方法。

結果如下:

另外也可以:這種方式表示調用整個Waterorder庫中的所有方法,因為該庫中就一個waterorder方法,所以也就是只調用該方法。

顯然,就我感覺而言第二種調用方法跟簡單靈活,平時應該更常用一些。經過以上的摸索,感覺自己以後完全可以寫一個庫出來,很牛逼有沒有?

生而有涯,學海無涯,繼續努力!

每日一語

我生如浮萍,人生如逆旅。

——走夜路的貓

每天都要進步一點!共勉!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

史上最全的Python數據分析工具:Notebook教程
小白Python編程從入門到實踐——創建數值列表

TAG:Python |