While 문 | For 문 |
- 범위가 지정되어 있지 않은 - 가변 길이에 따른 반복을 수행할 때 사용 - (종료 시점을 모를 때) |
- 길이가 고정된 반복을 수행할 때 사용 - (언제 끝날지 알고 있을 때) |
[for 문]
- for 변수 in 리스트(또는 튜플, 문자열):
- 수행할 문장
[range 함수]
- 범위를 지정해주는 함수
- range 함수는 최대 3개의 인자(argument)를 받음.
- 인자를 1개 넣었을 때 : 0부터 10미만까지 1 간격으로 출력 (default : 시작 = 0, 간격 = 1)
- 인자를 2개 넣었을 때 : 1부터 10미만까지 1 간격으로 출력
- 인자를 3개 넣었을 때 : 1부터 10미만까지 1 간격으로 출력
print(list(range(10))
print(list(range(1, 10))
print(list(range(1, 10, 1))
- range 함수는 iterative 하면서 subscriptable함.
- subsciptable 하지 않으면 인덱싱이 되지 않음. (ex) set)
[continue, break]
- continue: 상위에 있는 "반복문"으로 돌아감.
- break: 보통 while 문에서 사용됨. 상위에 있는 "반복문"을 깨줌.
- (find함수에 break가 쓰임. 제일 처음거 찾으면 멈추고 출력해줌.)
[for문 예제]
- 0부터 9까지 출력하기
- 3개의 결과 모두 똑같이 출력됨.
for i in range(10):
print(i)
print("-------------------")
for i in range(0, 10):
print(i)
print("-------------------")
for i in range(0, 10, 1):
print(i)

- 0부터 100까지 짝수만 출력하기
- 다양한 방법으로 출력 가능
# 1부터 100까지 짝수만 출력
for i in range(1, 101):
if i % 2 == 0:
print(i)
print("-------------------")
for i in range(1, 51):
i *= 2
print(i)
print("-------------------")
for i in range(2, 101, 2):
print(i)
print("-------------------")
for i in range(1, 101):
if i % 2 == 1:
continue
print(i)

- break를 쓰면 count가 100이 됐을 때, while을 나가고, count가 출력됨.
count = 0
while True:
count += 1
if count == 100:
break
print(count)

- continue, break를 사용하여 만들고 싶은 반복문 만들기
- 사용자가 입력한 메뉴가 종류에 없다면 continue를 통해 다시 while문 처음으로 돌아가 메뉴를 다시 입력함.
- 돈이 부족하면 break를 통해 while문 반복이 끝나게 됨.
user_money = input("돈을 넣어주세용: ")
user_money = int(user_money)
menus = ["계란찜", "계란말이", "계란후라이", "스크램블에그"]
while True:
user_menu = input("메뉴를 골라주세용: ")
if user_menu not in menus:
print("메뉴가 존재하지 않습니다.")
continue
elif user_menu == "계란찜" and user_money >= 3500:
print("선택하신 메뉴는 ♥계란찜♥ 입니다.")
user_money = user_money - 3500
elif user_menu == "계란말이" and user_money >= 3000:
print("선택하신 메뉴는 ♥계란말이♥ 입니다.")
user_money = user_money - 3000
elif user_menu == "계란후라이" and user_money >= 2500:
print("선택하신 메뉴는 ♥계란후라이♥ 입니다.")
user_money = user_money - 2500
elif user_menu == "스크램블에그" and user_money >= 2000:
print("선택하신 메뉴는 ♥스크램블에그♥ 입니다.")
user_money = user_money - 2000
else:
print("돈이 부족합니다.")
break
print(user_money)
- 교수님께서 작성해주신 코드
- switch 라는 변수를 사용하여 사용자가 선택한 메뉴가 메뉴에 있다면 switch가 False가 되어 while문이 종료됨.
menus = ["계란찜", "물", "포카리스웨트"]
switch = True
while switch:
user_input = input("메뉴를 골라주세요: ")
for menu in menus:
if user_input in menu:
switch = False
break
[이중반복문]
- 이중반복문을 사용하여 구구단 연습함.
for i in range(10):
for j in range(10):
print(i, j)

- 구구단 2단 출력하기
# 구구단 2단
for i in range(1, 10):
solution = 2*i
output = f"2 X {i} = {solution}"
print(output)

- 구구단 2단에서 9단 출력하기
- 2~9 단수 반복 / 곱하기 1~9 반복 => 이중반복문 사용
# 2단에서 9단까지
for i in range(2, 10):
for j in range(1, 10):
print(f"{i} X {j} = {i*j}")

- 한 단씩 한줄로 출력하기
for i in range(1, 10):
print(f"2 X {i} = {2*i} 3 X {i} = {3*i} 4 X {i} = {4*i} 5 X {i} = {5*i} 6 X {i} = {6*i} 7 X {i} = {7*i} 8 X {i} = {8*i} 9 X {i} = {9*i}")

- print 뒤에 keyword인 end를 통해 끝에 \t를 할 수 있음
- print()를 사용하여 안쪽 for문이 끝나면 다음줄로 넘어가도록 할 수 있음.
for i in range(1, 10):
str_ = ""
for j in range(2, 10):
str_ += f"{j} X {i} = {j*i} "
print(str_)
#
print("==============")
#
for i in range(1, 10):
for j in range(2, 10):
print(f"{j} X {i} = {j*i}", end="\t") # end는 keyword임. default ==> end = "\n" / end 다음 \t를 실행하여 tab 간격을 줌
print() # 다음줄로 넘어가기

'Python' 카테고리의 다른 글
[2025.02.25] 리스트 자료형 (0) | 2025.02.25 |
---|---|
[2025.02.24] for문_별찍기 (0) | 2025.02.24 |
[2025.02.24] while 문 (0) | 2025.02.24 |
[2025.02.21] if문 (0) | 2025.02.24 |
[2025.02.20] 숫자형 (0) | 2025.02.24 |