[爆卦]python演算法ptt是什麼?優點缺點精華區懶人包

為什麼這篇python演算法ptt鄉民發文收入到精華區:因為在python演算法ptt這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者souhang (souhang)看板Python標題[問題] 數據結構與演算法的學習與codi...

python演算法ptt 在 安米娜?Mina Instagram 的最佳解答

2021-09-03 15:27:32

軟體工程師轉職當專案經理到底可不可行呢?!😇 剛畢業進入職場的時候 我就在網路上面看到一篇文章寫說 鼓勵想要當專案經理的人應該一開始要當工程師 這樣你才能夠從基礎的開始學習知道工程師的工作內容與心境 這樣子你之後再當專案經理就能夠熟能生巧,而且可以設身處地的為工程師著想 秉持著網路上面的攻略❗️...


前言(廢話):
各位安安,
小弟之前有接觸過一咪咪autohotkey,因為最近找到了coding的樂趣,
開始透過youtube學習python,大概學到了用class建立對象與方法,
但一些很簡單的內置函數也都是看到別人用,才會知道有這東西。
在學習的過程中,我知道了leetcode這玩意,並在解題思路的幫助下,解出了第一題。
但到了第二題才發現,leetcode的入場門票是需要會數據結構與演算法,
這是我發文的主要原因。

以下問題:
1.數據結構與演算法資源推薦(中文偏好)
目前自己找到的資源,要嘛跟講得天書一樣難,
要嘛聽懂的卻又沒有code給我看實際到底長怎樣,有點難過

2.加强基礎的練習資源推薦
幫助手冊能教我如何使用,但如何運用或許就要透過刷題來學習了,
我知道leetcode和zerojudege,前者還不是我目前能面對的,
後者我也正在刷,只是想知道除了這些還有沒有其他推薦。
不限於刷題資源,教學文章、影片也可以(我覺得可以挑戰一下英文)

3.如何避免迴圈内的迴圈(for中for的改寫)
有時候會在for循環中再加入for循環,如果是一個兩個看起來還好,
但如果多起來的話,感覺邏輯上就會變得難釐清。
如果以下面的code來説的話),要如何避開或改善這個問題。

4.其他改善(同樣的code)
這部分像是註解、變數命名等等,因為沒參與過別人的開源項目,
也不知道怎麼做才是對其他開發人員友善,但又想早點培養習慣,
想來想去好像獻醜是最直接有效的改善方法,
如果在能力範圍內做得不夠好的話,希望各位能夠提點一下。

問完了,謝謝各位


這部分是code:

# 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標
值 target 的那 兩個 整數,並返回它們的數組下標。
# 你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素在答案裡不能重複出
現。
# 你可以按任意順序返回答案。


class Solution:

def twoSum(self, nums: list[int], target: int) -> list[int]:
"""
功能:
從列表中找尋二者之和與目標值相同的數,返回他們在列表中的位置
------------
參數:
nums:
數字所在的列表
target:
目標值
------------
變數:
numsLen:
列表nums的長度: len(nums)
num1Locat:
num1的位置: in range(numsLen)
num1:
第一個找到的數: nums[num1Locat]
num2Locat:
num2的位置: in range(num1Locat + 1, numsLen)
num2:
第二個找到的數: nums[num2Locat]
------------
返回值:
result:
結果: [num1Locat, num2Locat]
"""
numsLen = len(nums)
for num1Locat in range(numsLen):
num1 = nums[num1Locat]
for num2Locat in range(num1Locat + 1, numsLen):
num2 = nums[num2Locat]
if num1 + num2 == target:
result = [num1Locat, num2Locat]
return result


# testNums = [1, 3, 6, 7, 8, 11]
# testTarget = 19
# test = Solution()
# testResult = test.twoSum(testNums, testTarget)
# print(testResult)

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.246.44.39 (澳門)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1632659900.A.BCA.html
ddavid: 針對問題1跟2,特別是「聽懂的卻又沒有code給我看」這句,09/26 21:03
ddavid: 其實就是你根本的程式邏輯跟語言熟練度不夠的問題了。基本09/26 21:04
ddavid: 上應該要往「理解的概念就要能夠轉換為程式」前進09/26 21:05
ddavid: 就好像腦中的想法能轉換為英文講出口,才叫做會英文09/26 21:05
謝謝您的建議,給了我很大的啟發
pmove: 回第一個問題,我當時在學資料結構,書是使用C++當範例,其09/26 21:22
pmove: 實資料結構沒有一定要用哪種語言實作,所以沒有一定要用Pyt09/26 21:22
pmove: hon來實作,個人建議學C/C++的資料結構,Python可以自行領09/26 21:22
pmove: 悟09/26 21:22
的確,我只有在python範圍內找資源,聽您這樣說,我也打算試一試
pmove: 回第三個問題,iterative 本身跟 recursive 可以互換,但是09/26 21:27
pmove: 兩個for其實也還好09/26 21:27
謝謝關鍵字,原來手冊上有,但一直沒去學XD
pmove: 回第二題(抱歉跳著回答),若是為了以後薪水著想,英文能力09/26 21:42
pmove: > 專業(硬體)知識 > coding能力,基本上,如果您英文新09/26 21:42
pmove: 多益有900分以上,這輩子大概就不愁吃穿了。另外,程式語言09/26 21:42
pmove: 請不要執著於Python, 在台灣都還是跟硬體較相關,薪水較高09/26 21:42
pmove: 。09/26 21:42
很棒的建議,我確實對programer有點想法,也打算在python用得更熟練一點後,再往更底
層的語言學習,我會好好考慮的
pmove: 回第四題,一般來說公司會訂coding style, 例如tab 要用4個09/26 21:47
pmove: space來取代,名稱要用匈牙利命名法 還是要用 駱駝命名法…09/26 21:47
那看起來真的要實際參與專案再來研究了XD
Supershero: 有關第四點可以參考PEP809/26 22:35
謝謝,很棒的指南
※ 編輯: souhang (60.246.44.39 澳門), 09/26/2021 22:37:06
※ 編輯: souhang (60.246.44.39 澳門), 09/26/2021 22:40:30
ck574b027: leetcode有分難度吧,難的先跳過不用客氣 09/26 23:07
aalexx: 基本功練好、觀念正確比較重要。不要禁不起誘惑只刷題練面 09/27 01:48
aalexx: 試,不然大學資工系沒有存在的道理。 09/27 01:48
aalexx: python普遍上應該是snake命名+4空格,但還是看專案或公司 09/27 01:49
aalexx: ,沒有硬性規定。風格上可以看pep8 09/27 01:49
aalexx: 程式語言不是問題,選個舒服的入門就好。姿態正確了學新語 09/27 01:51
aalexx: 言也是幾周的事(撇開fp)。 09/27 01:51
Hsins: 多益 900 以上就不愁吃穿我怎麼沒感受到這件事... 09/27 13:52
pmove: 所以樓上沒死啊 XD 09/27 14:29
pmove: 不愁吃穿,最低限度來講,就是沒餓死沒凍死的意思 XD 09/27 14:46
leolarrel: 沒有多益也沒關係,洗個四大文組就能當碼農了 09/27 17:42
leolarrel: 還有我第一次看到不愁吃穿是這樣解釋的,真神人! 09/27 17:42
pmove: 咳咳,英文強到一個程度,在業界真的有很大的好處,至少可 09/27 20:27
pmove: 以到普遍福利比較好的外商。 09/27 20:27
s0914714: 英文好對找資料很有用 而且也有利進外商 非常值得投資 09/27 22:12
sherees: 近期收到夯特給的JD 必須英文溝通的團隊年薪多約20~30萬 09/28 01:14
sherees: 而且都是在台灣的遠端缺 09/28 01:15
sherees: 回一下原PO 1.leetcode的話看討論區 會說是用什麼演算法 09/28 01:19
sherees: 跟資料結構 有名詞再去google 09/28 01:20
sherees: 2.跟著專案練習 09/28 01:21
sherees: 3.不一定是需要避免的 重點是可讀性跟效率 09/28 01:23
sherees: 4.我之前是參考google python coding style 但重點還是跟 09/28 01:24
sherees: 團隊配合 通常沒有一定 但好的命名通常需要有良好的英文 09/28 01:24
sherees: 書寫能力 這部分也可以參考軟體版之前關於命名的討論 09/28 01:25
sherees: [心得][英文] 如何命名... 系列文 09/28 01:26
sherees: 另外註解建議用英文 開源社群不是只有華人 09/28 01:32
GTR12534: 阿這不就是第一題嗎?我有看過一個做法是另外做一個 li 09/28 08:28
GTR12534: st 出來,裡面放的是原本給的 list 跟 target 的差,因 09/28 08:28
GTR12534: 為題目限制的關係,新舊 list 只有一個重複的。 09/28 08:28
GTR12534: 類似這樣去最佳化算法。 09/28 08:28
ddavid: 呃,英文學好有好處是沒錯,但把不愁吃穿這樣解的,問題可 09/28 13:12
ddavid: 能在中文啊XDDD 09/28 13:12
ddavid: 底層DS跟演算法確實從C/C++之類的找資源會比較多,Python 09/28 13:13
ddavid: 說真的因為script語言易用的取向,相對不會去重刻底層基礎 09/28 13:14
ddavid: DS了,都拿寫好的用較多。當然要用得好或必要時動手改, 09/28 13:15
ddavid: 基礎還是得打好的。 09/28 13:15
mantour: 演算法有時候會用虛擬碼描述,你自己要培養把虛擬碼寫成 09/29 18:07
mantour: 可以跑的程式的功力 09/29 18:07
pmove: 所謂食衣住行,之所以不說不愁住行,住指的是買房子,行指 10/02 20:19
pmove: 的是買車子,這些都很花錢。而不愁吃穿,指的並不是財富自 10/02 20:19
pmove: 由。撇開最低限度,不餓死不凍死。吃在古代是久久才吃肉, 10/02 20:19
pmove: 你有辦法餐餐吃肉,基本上是不愁吃了。穿在古代長袍馬褂就 10/02 20:19
pmove: 要穿很久,壞了也只能修修補補,不會買新衣服,你有夠多的 10/02 20:19
pmove: 衣服,基本上是不愁穿了。依這個標準,台灣很多人是不愁吃 10/02 20:19
pmove: 穿的…不過考試的話,不愁吃穿,有可能是財富自由的意思 XD 10/02 20:19
b10007034: 現在要改成不愁房車了吧 10/18 16:40
b10007034: 不愁房房更好 10/18 16:40
Schottky: 沒想到在 Python 板可以看到各種不同語言的討論 10/18 17:20

你可能也想看看

搜尋相關網站