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

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

Links booklink

Contact Us: admin [ a t ] ucptt.com