[問題] 迴圈邏輯 (leetcode)

看板Python作者 (臉猛魯)時間5年前 (2020/05/24 01:39), 5年前編輯推噓3(308)
留言11則, 5人參與, 5年前最新討論串1/1
以下代碼如果用 Default = False 跑迴圈的時候會說 default reference before assignment https://i.imgur.com/giv72v8.jpg
但如果把 Default 改成一個List 然後指到list 的第0位 卻可以成功執行 請問為什麼python的資料結構只能參照外面的list 跟dic ? 不能參照外面的單一variabl e嗎? https://i.imgur.com/uRoopVD.jpg
懇請解惑謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.118.109 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1590255555.A.A8F.html

05/24 02:43, 5年前 , 1F
dfs內先寫global default試試
05/24 02:43, 1F

05/24 02:46, 5年前 , 2F
另外問一下把default寫在function外面有什麼特別的原因嗎
05/24 02:46, 2F
我是要用default,來判定有沒有符合情況~~~沒有就false 有就true

05/24 04:22, 5年前 , 3F
因為list是mutable所以default元素操作是參照global
05/24 04:22, 3F

05/24 04:25, 5年前 , 4F
default變數部分 因為dfs function中對default賦值
05/24 04:25, 4F

05/24 04:25, 5年前 , 5F
所以default視為local造成上面的default==True出錯
05/24 04:25, 5F

05/24 04:28, 5年前 , 6F
https://reurl.cc/9EW90d local/global variables rules
05/24 04:28, 6F

05/24 04:34, 5年前 , 7F
如果你在dfs內做default+=[1],default一樣會變local
05/24 04:34, 7F
了解了 感謝! ※ 編輯: lemonrude (111.250.118.109 臺灣), 05/24/2020 12:37:36

05/24 13:54, 5年前 , 8F
為什麼要多寫一個fun在裡面呢
05/24 13:54, 8F

05/24 13:56, 5年前 , 9F
猜是解題需要,所以寫了nested func去跑DFS
05/24 13:56, 9F

05/24 16:32, 5年前 , 10F

05/24 16:32, 5年前 , 11F
trategy/
05/24 16:32, 11F
文章代碼(AID): #1UoL_3gF (Python)
文章代碼(AID): #1UoL_3gF (Python)