본문 바로가기
Python

[Python] 반복문

by 기리의 개발로그 2024. 1. 15.

반복문

파이썬 반복문으로 whilefor 가 있다.


while 문


반복해서 문장을 수행하야 할 경우 사용한다.

while <조건문>:
    <조건문이 참일 때 수행할 문장>

treeHit = 0
while treeHit < 10:
    treeHit += 1
    print("나무를 %d번 찍었습니다." % treeHit)
    if treeHit == 10:
        print("나무 넘어간다")
나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.
나무 넘어간다

prompt = """
1. Add
2. Del
3. List
4. Quit

Endter number: """

number = 0
while number != 4:
    print(prompt)
    number = int(input())
1. Add
2. Del
3. List
4. Quit

Endter number:
1

1. Add
2. Del
3. List
4. Quit

Endter number:
4

break


반복문에서 빠져나오기 위해 사용한다.

coffee = 10
while True:
    money = int(input("돈을 넣어주세요 : "))
    if money == 300:
        print("커피를 줍니다.")
        coffee -= 1
        print("남은 커피의 양은 %d개 입니다." % coffee)
    elif money > 300:
        print("거스름돈 %d를 주고 커피를 줍니다." % (money - 300))
        coffee -= 1
        print("남은 커피의 양은 %d개 입니다." % coffee)
    else:
        print("돈이 부족합니다.")
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
        break
돈을 넣어주세요 : 400
거스름돈 100를 주고 커피를 줍니다.
남은 커피의 양은 9개 입니다.
돈을 넣어주세요 : 300
커피를 줍니다.
남은 커피의 양은 8개 입니다.
돈을 넣어주세요 : 200
돈이 부족합니다.
돈을 넣어주세요 : 204
돈이 부족합니다.
돈을 넣어주세요 : 600
거스름돈 300를 주고 커피를 줍니다.
남은 커피의 양은 7개 입니다.
돈을 넣어주세요 :

continue


특정 조건일 때에만 수행한 후 다시 조건문으로 돌아가고자 할 때 사용한다.

a = 0
while a < 10:
    a += 1
    if a % 2 == 0:
        continue
    print(a)
1
3
5
7
9

for문


for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2

test_list = ['one', 'two', 'three']
for i in test_list:
    print(i)
one
two
three

['one', 'two', 'three'] 리스트의 첫 번째 요소인 one이 먼저 i 번수에 대입된 후 print(i) 문장을 수행한다. 그 후 두 번째 요소 two가 i 변수에 대입된후 print(i) 문장을 수행하고
리스트 마지막 요소까지 반복한다.

a = [(1,2), (3,4), (4,5)]
for (first, last) in a:
    print(first, last)
1 2
3 4
4 5

위 예는 a 리스트의 각 요소값이 튜플이기 때문에 각각의 요소가 (first, last) 변수에 대입된다.((first, last) = (1,2))

marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
    number = number + 1
    if mark >= 60:
        print("%d번 학생은 합격입니다." % number)
    else:
        print("%d번 학생은 불합격입니다." % number)
1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 불합격입니다.
5번 학생은 합격입니다.

for문에서도 continue 문을 사용할 수 있다.

marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
    number = number + 1
    if mark < 60:
        continue
    print("%d번 학생은 합격입니다." % number)
1번 학생은 합격입니다.
3번 학생은 합격입니다.
5번 학생은 합격입니다.

리스트 내포

[표현식 for 항목 in 반복가능객체 (if 조건문)]

리스트 안에 for문을 포함하는 것을 의미하며 다중 for문을 사용할 수 있다.

[표현식 for 항목1 in 반복가능객체 (if 조건문1)
        for 항목2 in 반복가능객체 (if 조건문2)]

a = [1,2,3,4]
result = [num * 3 for num in a]
print(result)

a = [1,2,3,4]
result = [num * 3 for num in a if num % 2 == 0]
print(result)
[3, 6, 9, 12]

[6, 12]

아래와 같이 간단하게 구구단을 구현할 수 있다.

result = [x*y for x in range(2,10)
                    for y in range(1,10)]
print(result)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
반응형

'Python' 카테고리의 다른 글

[Python] 함수  (125) 2024.01.17
[Python] range() 함수  (120) 2024.01.16
[Python] 조건문  (55) 2024.01.12
[Python] 불(bool) 자료형  (76) 2024.01.11
[python] 튜플(tuple)  (72) 2024.01.10

댓글