python之局部变量引用赋值前的结果
生活随笔
收集整理的這篇文章主要介紹了
python之局部变量引用赋值前的结果
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
通過正則表達(dá)式,實(shí)現(xiàn)加減
?
? 昨晚在做計(jì)算器的時(shí)候,被一個(gè)BUG搞懵比了。現(xiàn)在再看看,發(fā)現(xiàn)我好小白啊~~
?
?
1 #8+5+6-52 num = input("please input:")3 sa = re.split(r'(\D)', num) #區(qū)配到非數(shù)字則分割4 5 6 def func(s):7 #result = 08 if s[1] == '+':9 result = int(s[0]) + int(s[2])
10 elif s[1] == '-':
11 result = int(s[0]) - int(s[2])
12
13 for i in range(3): # 去掉前三個(gè)
14 s.remove(s[0])
15
16 s.insert(0, result) #BUG:Local variable 'result' might be referenced before assignment more..局部變量引用賦值前的結(jié)果
17 print(s)
18
19 if len(s) == 1:
20 print(result)
21 else:
22 func(s)
23
24 func(sa) ?
注意第16行!!!
其實(shí)我昨晚運(yùn)行的時(shí)候是有顯示有BUG的:
UnboundLocalError: local variable 'result' referenced before assignment
但是今天運(yùn)行竟然沒有顯示錯(cuò)誤了!邪了~
?
但是不管怎樣,pycharm 16行那里result都有下劃線,提示:
Local variable 'result' might be referenced before assignment
?
怎么解決呢?
我早上又起來試試,在第7行加上result = 0,就可以了!
因?yàn)?#xff08;我覺得)if/elif……里面都是一個(gè)范圍 ,有對result進(jìn)行賦值,但在if/elif……外面是看不到的。
相當(dāng)于局部變量s 引用了變量result賦值前的結(jié)果。
?
?
轉(zhuǎn)發(fā)注明出處,謝謝。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangyubao/p/6973824.html
總結(jié)
以上是生活随笔為你收集整理的python之局部变量引用赋值前的结果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疏通下水道多少钱啊?
- 下一篇: 【大话设计模式】——浅谈设计模式基础