作者MOONY135 (談無慾)
看板Python
標題Re: [問題] 判斷布林值的問題
時間Thu Jan 18 23:02:48 2018
※ 引述《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
→ zuso: 其實我是想用在Flask上,同時只能有一個人在使用XD 01/19 11:42
→ zuso: Y ==0 結束的尾聲 在把x = False 開放下一個工作 01/19 11:43
推 Sunal: 先不論你的Flask架構 直覺聽起來這不是個好方法 01/19 12:22
推 zuso: 的確是個糟糕的方法,可以用前端就解決掉,只是想嘗試看看 01/19 12:23
→ zuso: 因為是個很簡單的web service 單純後接收變數去Call後端做爬 01/19 12:24
→ zuso: 蟲截圖 01/19 12:24
→ MOONY135: 我可以想像到的就是 當出現BUG的時候你要怎樣抓 01/19 16:48
→ MOONY135: true false現在看起來可能很簡單 但程式放久 01/19 16:48
→ MOONY135: 你應該只會靠北當初為啥要這樣玩 01/19 16:49
→ MOONY135: 我會用到全域的BOOL 大概只有是人為動作 類似按下BTN 01/19 16:49
→ MOONY135: 這種狀況下才會這樣寫 因為這樣好DEBUG 01/19 16:49