User Input & While Loops / 사용자 입력과 while 루프

  • The input() function prompts the user to enter a value.
    input() 함수는 사용자에게 값을 입력하도록 요청합니다.
  • A while loop repeats a block of code as long as a condition is True.
    while 루프는 조건이 True인 한 코드 블록을 반복합니다.

7.1 User Input / 사용자 입력

  • The input() function pauses the program and waits for the user to enter a value.
    input() 함수는 프로그램을 일시 중지하고 사용자가 값을 입력할 때까지 기다립니다.
  • It takes one argument: the prompt, or instructions, that we want to display to the user.
    하나의 인수를 사용합니다. 사용자에게 표시하려는 프롬프트 또는 지침입니다.
  • The input() function returns a string.
    input() 함수는 문자열을 반환합니다.
# 7.1_user_input.py
name = input("What is your name? ")
print(f"Hello, {name}!")
  • Add a space after the prompt.
    프롬프트 뒤에 공백을 추가합니다.
  • If you need a long prompt, you can store it in a variable and pass the variable to the input() function.
    긴 프롬프트가 필요한 경우 변수에 저장하고 변수를 input() 함수에 전달할 수 있습니다.
# 7.1_user_input.py
prompt = "If you tell us who you are, we can personalize the messages you see."
prompt += "\nWhat is your first name? "
name = input(prompt)
print(f"Hello, {name}!")
  • If you need a number, first convert the input to an integer using the int() function.
    숫자가 필요한 경우 int() 함수를 사용하여 입력을 정수로 먼저 변환합니다.
# 7.1_user_input.py
age = input("How old are you? ")
age = int(age)
print(age >= 18)
  • The modulo (%) operator divides one number by another number and returns the remainder.
    모듈로(%) 연산자는 한 숫자를 다른 숫자로 나누고 나머지를 반환합니다.
  • This is useful for determining if a number is even or odd.
    이는 숫자가 짝수인지 홀수인지 확인하는 데 유용합니다.
# 7.1_user_input.py
number = input("Enter a number, and I'll tell you if it's even or odd: ")
number = int(number)

if number % 2 == 0:
    print(f"\nThe number {number} is even.")
else:
    print(f"\nThe number {number} is odd.")

7.2 While Loops / while 루프

  • A while loop repeats a block of code as long as a condition is True.
    while 루프는 조건이 True인 한 코드 블록을 반복합니다.
  • If there is no way for the condition to become False, the loop will run forever.
    조건이 False가 되는 방법이 없으면 루프가 영원히 실행됩니다.
# 7.2_while_loops.py
current_number = 1
while current_number <= 5:
    print(current_number)
    current_number += 1
  • We can let the user decide when to stop a while loop by inputting a quit value.
    quit 값을 입력하여 사용자가 while 루프를 중지할 수 있도록 할 수 있습니다.
# 7.2_while_loops.py
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
message = ""
while message != 'quit':
    message = input(prompt)
    print(message)
  • We can also use a flag to determine when to stop a while loop.
    플래그를 사용하여 while 루프를 중지할 때를 결정할 수도 있습니다.
  • A flag is a variable that holds the status of a program.
    플래그는 프로그램의 상태를 보유하는 변수입니다.
# 7.2_while_loops.py
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "

active = True

while active:
    message = input(prompt)

    if message == 'quit':
        active = False
    else:
        print(message)

break and continue Statements / breakcontinue

  • Use break to immediately end a while loop.
    break를 사용하여 while 루프를 즉시 종료합니다.
# 7.3_break_continue.py
prompt = "\nPlease enter the name of a city you have visited:"
prompt += "\n(Enter 'quit' when you are finished.) "

while True:
    city = input(prompt)

    if city == 'quit':
        break
    else:
        print(f"I'd love to go to {city.title()}!")
  • Use continue to skip the rest of the loop and return to the beginning.
    continue를 사용하여 루프의 나머지 부분을 건너뛰고 처음으로 돌아갑니다.
# 7.3_break_continue.py
current_number = 0
while current_number < 10:
    current_number += 1
    if current_number % 2 == 0:
        continue

    print(current_number)

7.3 while with Lists and Dictionaries / 리스트 및 사전과 함께 while

  • To modify a list as you work through it, use a while loop.
    while 루프를 사용하여 리스트를 수정합니다.
# 7.4_while_lists.py
unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []

while unconfirmed_users:
    current_user = unconfirmed_users.pop()

    print(f"Verifying user: {current_user.title()}")
    confirmed_users.append(current_user)

print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
    print(confirmed_user.title())
  • To remove all instances of a value from a list, use a while loop.
    리스트에서 값을 모두 제거하려면 while 루프를 사용합니다.
  • Recall that remove() only removes the first instance of a value.
    remove()는 값의 첫 번째 인스턴스만 제거한다는 것을 기억하십시오.
# 7.4_while_lists.py
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets) # ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']

while 'cat' in pets:
    pets.remove('cat')

print(pets) # ['dog', 'dog', 'goldfish', 'rabbit']

while Loops in Dictionaries / 사전의 while 루프

  • We can also gather user input and store it in a dictionary with a while loop.
    while 루프를 사용하여 사용자 입력을 수집하고 사전에 저장할 수도 있습니다.
# 7.5_while_dictionaries.py
responses = {}

polling_active = True

while polling_active:
    name = input("\nWhat is your name? ")
    response = input("Which mountain would you like to climb someday? ")

    responses[name] = response

    repeat = input("Would you like to let another person respond? (yes/ no) ")
    if repeat == 'no':
        polling_active = False

print("\n--- Poll Results ---")
for name, response in responses.items():
    print(f"{name} would like to climb {response}.")