"도..."가 있습니까?파이썬에서 "까지"?
있습니까?
do until x:
...
파이썬에서, 또는 그러한 루프 구조를 구현하는 좋은 방법?
위의 링크에서 가져온 유사한 구조입니다.
while True:
do_something()
if condition():
break
저는 루프 변수를 사용하는 것을 선호합니다. 단순히 "while 1:"보다 조금 더 좋게 읽는 경향이 있고 못생기지 않습니다.break
문:
finished = False
while not finished:
... do something...
finished = evaluate_end_condition()
사전 패키지화된 "do-while"은 없지만 고유한 루프 구조를 구현하는 일반적인 Python 방법은 생성기와 다른 반복기를 통해 수행됩니다.
import itertools
def dowhile(predicate):
it = itertools.repeat(None)
for _ in it:
yield
if not predicate(): break
예를 들어 다음과 같습니다.
i=7; j=3
for _ in dowhile(lambda: i<j):
print i, j
i+=1; j-=1
시작할 때 술어가 이미 거짓임에도 불구하고 원하는 대로 하나의 다리를 실행합니다.
일반적으로 루프 로직을 생성기(또는 다른 반복기)에 더 많이 캡슐화하는 것이 좋습니다. 예를 들어, 변수 하나가 증가하고 하나가 감소하는 경우, 변수를 비교하는 동안 실행/실행 루프가 필요한 경우 다음을 코드화할 수 있습니다.
def incandec(i, j, delta=1):
while True:
yield i, j
if j <= i: break
i+=delta; j-=delta
다음과 같이 사용할 수 있습니다.
for i, j in incandec(i=7, j=3):
print i, j
생성기(또는 다른 반복기) 내부에 얼마나 많은 루프 관련 논리를 넣을지, 그리고 생성기 밖에 얼마나 많이 넣을지(주 실행 스트림에서 코드를 리팩터링하는 데 사용할 수 있는 다른 함수, 클래스 또는 기타 메커니즘과 마찬가지로)는 사용자에게 달려 있지만, 일반적으로 말해서, 저는 생성기가 사용되는 것을 보고 싶습니다.for
루프 제어 로직이 거의 없는 루프(다음 루프 레그에 대한 상태 변수 업데이트 및/또는 다시 루프해야 하는지 여부에 대한 테스트와 관련된 코드).
아니요, 없어요.대신 a를 사용합니다.while
다음과 같은 루프:
while 1:
...statements...
if cond:
break
언급URL : https://stackoverflow.com/questions/1662161/is-there-a-do-until-in-python
'programing' 카테고리의 다른 글
PL/SQL 저장 프로시저에서 쉼표로 구분된 문자열 분할 (0) | 2023.06.08 |
---|---|
iPhone - Grand Central Dispatch 메인 스레드 (0) | 2023.06.08 |
Python을 사용하여 Excel에 수식 쓰기 (0) | 2023.06.08 |
Excel VBA에서 주어진 모듈 이름의 Function 및 Sub 목록을 가져오는 방법 (0) | 2023.06.08 |
Firebase에서 배열 유형 문서 항목에 타임스탬프를 할당하는 방법 (0) | 2023.06.08 |