-2
내가 온라인 EdEx 6.00.2x 과정을 통해 일하고 내 코드의 한 부분을 고민하고
newResistances = copy.deepcopy(self.resistances)
for drugs in self.resistances:
resistancePicker = random.random()
if self.resistances[drugs] == True:
if resistancePicker < self.mutProb:
print self.mutProb
newResistances[drugs] = False
elif self.resistances[drugs] == False:
if resistancePicker < self.mutProb:
print self.mutProb
newResistances[drugs] = True
print newResistances
return ResistantVirus(self.maxBirthProb, self.clearProb, newResistances, self.mutProb)
self.resistances
이 사전 포함 약 이름 키입니다 , 및 True
또는 False
값 {'a':True,'b':True}
. 내 문제는 사전의 첫 번째 요소 만 평가되고 newResistances
사전에서 변경된 것으로 보입니다. 이 질문이 너무 모호하거나 더 많은 상황이 필요한 경우 알려 주시기 바랍니다.
, 당신은 거의'사용하지 == TRUE '또는'== FALSE'안됩니다. '자기 저항력 '이라면'자기 저항력'이라면'자기 저항력'은'자기 저항력' (그러나이 경우에도 후자는 불필요하며'else :'를 사용하십시오. 테스트에 이르면'self.resistances [drugs]'가 사실이 아니라는 것을 이미 알고 있으므로 왜 그렇지 않은지 확인하십시오 ?) – abarnert
다음 번에 코드를 디버깅해야합니다. –
'if'와'else'의 전체 외부는 건너 뛸 수 있고,'not' 키워드로 불리언 값을 무시하기 쉽기 때문에, 몸체 사이의 중복 된 코드가 결합 될 수 있습니다 :'if resistancePicker
Blckknght