Re: [問題] 判斷布林值的問題

看板Python作者 (談無慾)時間6年前 (2018/01/18 23:02), 6年前編輯推噓2(209)
留言11則, 3人參與, 6年前最新討論串3/3 (看更多)
※ 引述《zuso ( )》之銘言: : Hi 各位板友,最近剛開始碰Python,遇上了一個問題,實在不懂為甚麼,懇請各位指點 : def abc(): : x = False : y = 0 : if x is True: : print('Working, Please try again') : else: : if y == 0 : : x = True : print('Start Work') : abc() : abc() : #Start Work : #Start Work : 不懂為甚麼第二個回應依舊是Start Work,正常來說應該在第一個Start Work運行後就 : 賦值True給X,第二次應該是Working, Please try again,可是為甚麼會這樣子呢? : 懇請各位給予指點,謝謝 不知道你是想讓他怎樣 連按兩次要變嗎 最近的感想是這樣寫之後會遇到不少麻煩就是了 首先你要搞得懂區域變數跟全域變數 最近會覺得python會自己判定是int還是string會有點讓人分不清楚 y = 0 x = False def abc(): global x if x is True: print('Working, Please try again') else: if y == 0 : x = True print('Start Work') abc() abc() 其實我不太建議拉 要是有兩個FUNCTION同時用到x 而且有可能是用timer之類的讓它去跑 你應該會很難過XDDD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.82.29 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1516287770.A.482.html ※ 編輯: MOONY135 (1.160.82.29), 01/18/2018 23:04:18

01/19 11:42, 6年前 , 1F
其實我是想用在Flask上,同時只能有一個人在使用XD
01/19 11:42, 1F

01/19 11:43, 6年前 , 2F
Y ==0 結束的尾聲 在把x = False 開放下一個工作
01/19 11:43, 2F

01/19 12:22, 6年前 , 3F
先不論你的Flask架構 直覺聽起來這不是個好方法
01/19 12:22, 3F

01/19 12:23, 6年前 , 4F
的確是個糟糕的方法,可以用前端就解決掉,只是想嘗試看看
01/19 12:23, 4F

01/19 12:24, 6年前 , 5F
因為是個很簡單的web service 單純後接收變數去Call後端做爬
01/19 12:24, 5F

01/19 12:24, 6年前 , 6F
蟲截圖
01/19 12:24, 6F

01/19 16:48, 6年前 , 7F
我可以想像到的就是 當出現BUG的時候你要怎樣抓
01/19 16:48, 7F

01/19 16:48, 6年前 , 8F
true false現在看起來可能很簡單 但程式放久
01/19 16:48, 8F

01/19 16:49, 6年前 , 9F
你應該只會靠北當初為啥要這樣玩
01/19 16:49, 9F

01/19 16:49, 6年前 , 10F
我會用到全域的BOOL 大概只有是人為動作 類似按下BTN
01/19 16:49, 10F

01/19 16:49, 6年前 , 11F
這種狀況下才會這樣寫 因為這樣好DEBUG
01/19 16:49, 11F
文章代碼(AID): #1QOBSQI2 (Python)
文章代碼(AID): #1QOBSQI2 (Python)