Python에서 Do-While 루프를 어떻게 에뮬레이트할 수 있습니까?
2023. 12. 17. 15:53ㆍpython/basic
요약: while 루프 및 break 문을 사용하세요.
이 루프는 형식 조건으로 True을 사용합니다. 이 트릭은 루프를 무한 루프로 바꿉니다. 조건문 이전에 루프는 필요한 모든 처리를 실행하고 중단 조건을 업데이트합니다. 이 조건이 true로 평가되면 break 문은 루프에서 벗어나고 프로그램 실행은 일반 경로를 계속 진행합니다.
참고: 무한 루프와 break 문을 사용하면 do-while 루프를 에뮬레이트할 수 있습니다. 이 기술은 Python 커뮤니티에서 일반적으로 권장하지만 완전히 안전하지는 않습니다.
예를 들어 문 앞에 continue 문을 삽입하면 루프가 중단 조건을 놓치고 제어할 수 없는 무한 루프에 빠질 수 있습니다.
In [ ]:
while True:
number = int(input("Enter a positive number: "))
print(number)
if not number > 0:
break
Enter a positive number: 1
1
Enter a positive number: 4
4
Enter a positive number: -1
-1
Do-While 루프는 실제로 어떻게 작동합니까?
In [ ]:
# guess.py
from random import randint
LOW, HIGH = 1, 10
secret_number = randint(LOW, HIGH)
clue = ""
while True:
guess = input(f"Guess a number between {LOW} and {HIGH} {clue} ")
number = int(guess)
if number > secret_number:
clue = f"(less than {number})"
elif number < secret_number:
clue = f"(greater than {number})"
else:
break
print(f"You guessed it! The secret number is {number}")
Do-While 루프와 While 루프의 차이점은 무엇입니까?
간단히 말해서, do-while 루프와 while 루프의 주요 차이점은 전자는 루프 조건이 마지막에 확인되기 때문에 본문을 적어도 한 번 실행한다는 것입니다. 반면, 일반 while 루프의 본문은 조건이 true로 평가되면 실행되며, 이는 루프 시작 시 테스트됩니다.
Python에서 Do-While 루프를 에뮬레이트하기 위해 어떤 대안을 사용할 수 있습니까?
루프 이전에 첫 번째 작업 수행
In [ ]:
# guess.py
from random import randint
LOW, HIGH = 1, 10
secret_number = randint(LOW, HIGH)
clue = ""
def process_move(clue):
user_input = input(f"Guess a number between {LOW} and {HIGH} {clue} ")
number = int(user_input)
if number > secret_number:
clue = f"(less than {number})"
elif number < secret_number:
clue = f"(greater than {number})"
return number, clue
number, clue = process_move(clue) # First iteration
while number != secret_number:
number, clue = process_move(clue)
print(f"You guessed it! The secret number is {number}")
초기에 참인 루프 조건 사용
In [ ]:
# guess.py
from random import randint
LOW, HIGH = 1, 10
secret_number = randint(LOW, HIGH)
clue = ""
number_guessed = False
while not number_guessed:
user_input = input(f"Guess a number between {LOW} and {HIGH} {clue} ")
number = int(user_input)
if number > secret_number:
clue = f"(less than {number})"
elif number < secret_number:
clue = f"(greater than {number})"
else:
number_guessed = True
print(f"You guessed it! The secret number is {number}")
'python > basic' 카테고리의 다른 글
Tkinter를 사용한 Python GUI 프로그래밍1 (0) | 2023.12.19 |
---|---|
MkDocs를 사용하여 Python 프로젝트 문서 작성 (0) | 2023.12.18 |
Python에서 절대값을 찾는 방법 (0) | 2023.12.17 |
Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 방법 (1) | 2023.12.17 |
Python 개발자를 위한 HTML 및 CSS (0) | 2023.12.14 |