에서 마지막으로 반복 또는 이 실행되지 않았는지 여부를 감지하는 멋진 방법이 Python에서 있습니까? 전혀 아나요?중단 조건이 트리거되었는지 확인
C++ 예 :
int k, n = 10;
for (k = 0; k < n; k++)
if (condition) break;
if (k == n) cout << "Never broke\n";
else cout << "Broke at " << k << '\n';
파이썬 예 :
파이썬에서n = 10
for k in range(n):
if condition: break
if k == n: print("Never broke")
else: print("Broke at", k)
, 우리는 k는 두 경우 모두 9이기 때문에 condition
이 마지막 반복에서 사실 여부를 알 수 없습니다.
대신 range(n + 1)
을 사용하지 않는 이유는 무엇입니까? 일부 컨텍스트에서는 k가 n 일 때 "범위를 벗어난 인덱스"오류가 발생할 수 있습니다.
한 가지 가능한 해결 방법은 아래 표시된 것처럼 센티널 값을 사용하는 것이지만 더 좋은 방법이 있습니까?
n, flag = 10, True
for k in range(n):
if condition:
flag = False
break
if flag: print("Never broke")
else: print("Broke at", k)
나는 건초 더미에서 바늘을 가리키는 것으로 항상'for' /'else'라고 묘사합니다 : 바늘을 발견하면'휴식'하고, 바늘이 없다면'else' 경우가 당신에게 알려줍니다 건초 더미는 건초 만이다. – ShadowRanger