[閒聊] 女巫獵人random一直跑Trun?

看板Python作者 (狗狗睪丸被割)時間5年前 (2019/09/26 13:09), 5年前編輯推噓2(205)
留言7則, 4人參與, 5年前最新討論串1/1
import random class Witch: def __init__(self,name,level): self.name=name self.level=level def __repr__(self): return ('{}(lv{})'.format(self.name,self.level)) def witchcraft_attack(self): return random.randint(1,10)*self.level class FireWitch(Witch): def __init__(self,name,level,firestaff): super().__init__(name,level) self.firestaff=firestaff def witchcraft_attack(self): base_attack=super().witchcraft_attack() if self.firestaff== True: print("女巫噴火啦") return base_attack*2 else: return base_attack firewitch=FireWitch('火焰女巫',5,random.choice([False,True])) 目前想說 random ture * 2  false * 1 但執行 firewitch.witchcraft_attack() 女巫噴火啦 Out[139]: 100 firewitch.witchcraft_attack() 女巫噴火啦 Out[140]: 80 firewitch.witchcraft_attack() 女巫噴火啦 Out[141]: 50 女巫一直噴火 感覺random 一直跑ture 為啥不會跑false呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.56.227.246 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1569474575.A.19B.html ※ 編輯: gogogo123 (117.56.227.246 臺灣), 09/26/2019 13:10:23 ※ 編輯: gogogo123 (117.56.227.246 臺灣), 09/26/2019 13:29:32

09/26 13:46, 5年前 , 1F
因為你只有在初始時候決定跑或不跑
09/26 13:46, 1F

09/26 14:43, 5年前 , 2F
Boolean比較建議用is不要用==
09/26 14:43, 2F

09/26 14:44, 5年前 , 3F
或者是直接if bool_val
09/26 14:44, 3F

09/27 20:55, 5年前 , 4F
好奇為什麼用is比較好
09/27 20:55, 4F

09/28 09:27, 5年前 , 5F
Python 中的==是做值的比對,is是直接查詢位址,類似c
09/28 09:27, 5F

09/28 09:27, 5年前 , 6F
的指針。雖然說效能上沒有明顯的差別,但是就是可讀性
09/28 09:27, 6F

09/28 09:27, 5年前 , 7F
而已,一般你要做數值或是字串才建議用==
09/28 09:27, 7F
文章代碼(AID): #1TZ4WF6R (Python)
文章代碼(AID): #1TZ4WF6R (Python)