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