파이썬에서 "continue" 문을 사용하는 예는 무엇입니까?
의 정의는continue
문은 다음과 같습니다.
그
continue
문은 루프의 다음 반복으로 계속됩니다.
코드의 좋은 예를 찾을 수 없습니다.
누군가 간단한 경우를 제안해 주시겠습니까?continue
필요합니까?
다음은 간단한 예입니다.
for letter in 'Django':
if letter == 'D':
continue
print("Current Letter: " + letter)
출력은 다음과 같습니다.
Current Letter: j
Current Letter: a
Current Letter: n
Current Letter: g
Current Letter: o
현재 반복의 나머지 부분을 건너뜁니다(여기서는:print
)을 클릭하고 루프의 다음 반복으로 계속 진행합니다.
저는 당신이 "사업에 착수"하기 전에 충족해야 할 많은 조건들이 있는 루프에서 continue를 사용하는 것을 좋아합니다.그래서 이런 코드 대신에:
for x, y in zip(a, b):
if x > y:
z = calculate_z(x, y)
if y - z < x:
y = min(y, z)
if x ** 2 - y ** 2 > 0:
lots()
of()
code()
here()
다음과 같은 코드가 표시됩니다.
for x, y in zip(a, b):
if x <= y:
continue
z = calculate_z(x, y)
if y - z >= x:
continue
y = min(y, z)
if x ** 2 - y ** 2 <= 0:
continue
lots()
of()
code()
here()
이렇게 하면 매우 깊게 중첩된 코드를 피할 수 있습니다.또한 가장 빈번하게 발생하는 사례를 먼저 제거하여 루프를 최적화하기 쉬우므로, 다른 쇼퍼가 없을 때는 드물지만 중요한 사례(예: 나눗셈이 0)만 처리하면 됩니다.
일반적으로 continue가 필요하거나 유용한 상황은 루프의 나머지 코드를 건너뛰고 반복을 계속하려는 경우입니다.
항상 if 문을 사용하여 동일한 논리를 제공할 수 있지만 코드의 가독성을 높이는 데 유용할 수 있기 때문에 필요하다고 생각하지 않습니다.
import random
for i in range(20):
x = random.randint(-5,5)
if x == 0: continue
print 1/x
continue는 매우 중요한 제어문입니다.위의 코드는 0으로 나눗셈의 결과를 피할 수 있는 일반적인 응용 프로그램을 나타냅니다.프로그램의 출력을 저장해야 할 때 자주 사용하지만 프로그램이 중단된 경우에는 출력을 저장하고 싶지 않습니다.위의 예를 테스트하려면 마지막 문을 print 1/float(x)로 바꾸십시오. 그렇지 않으면 randint가 정수를 반환하므로 분수가 있을 때마다 0이 됩니다.명확하게 하기 위해 생략했습니다.
어떤 사람들은 가독성에 대해 "오, 가독성에 그렇게 도움이 되지 않는데, 누가 신경 쓰겠어요?"라고 말했습니다.
주 코드 앞에 검사가 필요하다고 가정합니다.
if precondition_fails(message): continue
''' main code here '''
주 코드를 작성한 후에는 코드를 변경하지 않고도 이 작업을 수행할 수 있습니다.코드를 분산하면 기본 코드에 대한 공백 변경이 없으므로 "계속"이 있는 추가된 줄만 강조 표시됩니다.
생산 코드를 수정해야 하는 경우를 상상해 보십시오. 이것은 단순히 continue로 줄을 추가하는 것으로 밝혀졌습니다.코드를 검토하면 변경 사항이 그것뿐이라는 것을 쉽게 알 수 있습니다.if/else로 메인 코드를 래핑하기 시작하면 diff는 특히 Python에서 위험한 간격 변경을 무시하지 않는 한 새로 들여쓰기된 코드를 강조 표시합니다.저는 당신이 짧은 시간에 코드를 배포해야 하는 상황이 아니라면, 당신은 이것을 완전히 이해하지 못할 수도 있다고 생각합니다.
def filter_out_colors(elements):
colors = ['red', 'green']
result = []
for element in elements:
if element in colors:
continue # skip the element
# You can do whatever here
result.append(element)
return result
>>> filter_out_colors(['lemon', 'orange', 'red', 'pear'])
['lemon', 'orange', 'pear']
3과 5의 배수가 아닌 모든 숫자를 인쇄하려고 합니다.
for x in range(0, 101):
if x % 3 ==0 or x % 5 == 0:
continue
#no more code is executed, we go to the next number
print x
IF로 할 수 있기 때문에 꼭 필요한 것은 아니지만, 더 읽기 쉽고 실행 시간도 저렴합니다.
데이터가 일부 요구 사항을 충족하지 못하는 경우 루프의 반복을 건너뛰기 위해 사용합니다.
# List of times at which git commits were done.
# Formatted in hour, minutes in tuples.
# Note the last one has some fantasy.
commit_times = [(8,20), (9,30), (11, 45), (15, 50), (17, 45), (27, 132)]
for time in commit_times:
hour = time[0]
minutes = time[1]
# If the hour is not between 0 and 24
# and the minutes not between 0 and 59 then we know something is wrong.
# Then we don't want to use this value,
# we skip directly to the next iteration in the loop.
if not (0 <= hour <= 24 and 0 <= minutes <= 59):
continue
# From here you know the time format in the tuples is reliable.
# Apply some logic based on time.
print("Someone commited at {h}:{m}".format(h=hour, m=minutes))
출력:
Someone commited at 8:20
Someone commited at 9:30
Someone commited at 11:45
Someone commited at 15:50
Someone commited at 17:45
보다시피, 잘못된 값은 다음 이후에 만들어지지 않았습니다.continue
진술.
다음은 연속 및 중단 문에 대한 매우 좋은 시각적 표현입니다.
예를 들어 변수 값에 따라 다른 작업을 수행하려는 경우:
my_var = 1
for items in range(0,100):
if my_var < 10:
continue
elif my_var == 10:
print("hit")
elif my_var > 10:
print("passed")
my_var = my_var + 1
에서는 위의예는다사음용다니합을서에▁i다니사를 합니다.break
통역사가 루프를 건너뛸 것입니다.하지만 함께continue
다음 으로 바로 이동합니다.
언급URL : https://stackoverflow.com/questions/8420705/example-use-of-continue-statement-in-python
'source' 카테고리의 다른 글
시스템 테이블 마스터의 목적은 무엇입니까?spt_values 및 그 값의 의미는 무엇입니까? (0) | 2023.07.09 |
---|---|
네 개의 테이블에서 선택하고 일부 결과를 하나의 열로 그룹화 (0) | 2023.07.09 |
Angular2 Types 스크립트에서 HTML 요소 읽기 전용 및 필수 속성을 변경하는 방법은 무엇입니까? (0) | 2023.07.09 |
패턴별로 파일을 재귀적으로 추가합니다. (0) | 2023.07.09 |
git-gc를 얼마나 자주 사용해야 합니까? (0) | 2023.07.09 |