2
나는 다음과 같은 while
루프를 가지고 :파이썬 : 조건부 또는
accuracy = 0.0001 # Or whatever
loop_limit = True
limit = 100
# Main loop:
while abs(P - P_old).max() > accuracy or (if loop_limit: count > limit):
. 내가 원하는 것은 loop_limit = True
일 때만 검사되는 or
문입니다.
나는 루프 경우에만 loop_limit = True
의 모든 패스에 카운트 변수를 재설정 while
루프 내로 if
문을 넣을 수 있지만, 그것은 while
루프의 모든 패스를 loop_limit 확인해야 할 것입니다 그리고 난 그것을 피하려고. (이 루프는 보호기가 도움이 될 때마다 수백만 번 실행됩니다.) 나는이 일을하는 깔끔한 방법이 있다는 느낌이 들었다.
편집 : 것을
주 (P - P_old가) 나는 그것을 언급하는 것을 잊었다하고 이미 답변에서 언급 되었기 때문에 내가 지금 제거하지 않는 NumPy와 배열, 따라서 .max()
입니다. max()
가 어떻게해야하는 것이 무엇, 그런데
while abs(P - P_old) > accuracy or (loop_limit and count > limit):
:
. 그건 그렇습니다. 건배. – MarcinKonowalczyk
나는 누군가에 대해 elses 코드를 디버깅하고 있으므로 아직 생각하지 않았습니다. 나는 나를 위해 모든 권리를 컴파일합니다. Enthought Canopy와 IPython을 사용하고 있습니다. 그래서 약간의 오류가 매끄럽게 나올 수 있습니다. 나는 그걸 한번 보려고한다. – MarcinKonowalczyk
나는 P가 numpy 배열이라는 것을 잊어 버렸다. – MarcinKonowalczyk