[Python] 제어 구조 : For 구문

2022. 12. 27. 15:50·Programming
반응형

코딩의 핵심 : for in collection

특정 조건에서 반복문을 수행 할 때, range() 함수를 사용할 수 있다.

range(1, 10, 2)

위의 경우 1부터 10까지 2씩 건넌 숫자를 말한다.

1, 3, 5, 7, 9의 순서로 실행된다.

for v1 in range(10):  # 0~9
    print('V1 is : ', v1)

for v2 in range(1, 11):  # 1~10
    print('V2 is : ', v2)

for v3 in range(1, 11, 2):  # 1~10 중 두개씩 건너뜀( 1, 3, 5 ,7, 9 )
    print('V3 is : ', v3)

 

반복문을 응용해본다면!

 

1~1000까지의 합을 구해보자.

sum1 = 0
for v in range(1, 1001):
    sum1 += v
print('1 ~ 1000 Sum : ', sum1)

>>> 1 ~ 1000 Sum :  500500

 

sum() 함수를 사용하면 더 간단하게 구할 수 있다.

print('1 ~ 1000 Sum :', sum(range(1, 1001)))

>>> 1 ~ 1000 Sum : 500500

 

아래처럼 응용하여 4배수의 합도 구할 수 있다,

print('1~ 1000 4의 배수의 합 : ', sum(range(4, 1001, 4)))

>>> 1~ 1000 4의 배수의 합 :  125500

 

Iterables 자료형

문자열, 리스트, 튜플, 집합, 딕셔너리

 

* iterable 함수 : range, reversed, enumerate, filter, map, zip 

 

- 리스트

# 예제 1
names = ['Kim', 'Park', 'Cho', 'Yoo']

for i in names:
    print('you are : ', i)
    
 
 >>> you are :  Kim
 >>> you are :  Park
 >>> you are :  Cho
 >>> you are :  Yoo
 
 
# 예제 2
lotto_numbers = [11, 14, 34, 1, 31, 20]

for n in lotto_numbers:
    print('Current number : ', n)
    
>>> Current number :  11
>>> Current number :  14
>>> Current number :  34
>>> Current number :  1
>>> Current number :  31
>>> Current number :  20

 

- 문자열

word = 'Beautiful'

for s in word:
    print('word : ', s)

>>> word :  B
>>> word :  e
>>> word :  a
>>> word :  u
>>> word :  t
>>> word :  i
>>> word :  f
>>> word :  u
>>> word :  l

응용문제 : 문자열을 대문자로 출력해보자.

name = 'FineAppLE'

# 대문자면 참, 소문자면 거짓으로 출력

for n in name:
    if n.isupper():
        print("True")
    elif n.islower():
        print("False")

>>> True
>>> False
>>> False
>>> False
>>> True
>>> False
>>> False
>>> True
>>> True

isupper() / islower()을사용하여 대소문자를 판별 할 수 있고,

대소문자로 변경할 수 도 있다.

print(name.upper())

>>> FINEAPPLE

 

- 딕셔너리

my_info = {
    'name': 'Lee',
    'Age': 33,
    'City': 'Seoul'
}

# key 값만 가져옴
for key in my_info:
    print('Key :', my_info[key])
    
>>> Key : Lee
>>> Key : 33
>>> Key : Seoul


# value 반환
for v in my_info.values():
    print('value : ', v)
    
>>> value :  Lee
>>> value :  33
>>> value :  Seoul

 

반복문에 브레이크를 걸어보자

반복문 안에서 즉시 멈추고 싶을 때

# break (즉시 멈춤)
numbers = [14, 3, 4, 7, 10, 24, 17, 2, 33, 15, 34, 36, 38]

for num in numbers:
    if num == 34:
        print("Found : 34!")
        break
    else:
        print("Not found : ", num)
        
>>> Found : 34!

 

반복문에서 건너뛰기

반복문 안에서 건너뛰고 싶을 때 continue를 사용하면 되는데, 사용방법은 아래와 같다.

 

type이 boolean형일 경우 건너 뛴다는 조건을 걸고 코드를 실행해보면

아래 결과처럼 v가 True인 경우를 제외한 나머지 값에 대해서만 출력 되는 것을 볼 수 있다.

lt = ["1", 2, 5, True, 4.3, complex(4)]

for v in lt:
    if type(v) is bool:
        continue

    print("current type : ", type(v))
    print("multiply by 2:", v * 3)
    
 >>> current type :  <class 'str'>
 >>> multiply by 2: 111
 >>> current type :  <class 'int'>
 >>> multiply by 2: 6
 >>> current type :  <class 'int'>
 >>> multiply by 2: 15
 >>> current type :  <class 'float'>
 >>> multiply by 2: 12.899999999999999
 >>> current type :  <class 'complex'>
 >>> multiply by 2: (12+0j)

 

for - else 구문은 처음이죠?

num == 24인 경우 break문을 만나서 즉시 중단하게 된다.

# for - else 구문
numbers = [14, 3, 4, 7, 10, 24, 17, 2, 33, 15, 34, 36, 38]

for num in numbers:
    if num == 24:
        print("Found : 24!")
        break
else:
    print("Not Found 24...")
    
>>> Found : 24!

만약 numbers에 존재 하지 않는 값으로 변경한다면?

numbers = [14, 3, 4, 7, 10, 24, 17, 2, 33, 15, 34, 36, 38]

for num in numbers:
    if num == 54:
        print("Found : 54!")
        break
else:
    print("Not Found 54...")

else 구문으로 빠져 Not Found 54...가 출력된다.

For문으로 구구단도 만들 수 있죠!

중첩하여 반복문을 사용할 수 있다.

# 구구단 출력

for i in range(2, 10): # 2 ~ 9 
    for j in range(2, 10):
        print('{:4d}'.format(i * j), end='')
    print()
 
>>>      4   6   8  10  12  14  16  18
>>>      6   9  12  15  18  21  24  27
>>>      8  12  16  20  24  28  32  36
>>>     10  15  20  25  30  35  40  45
>>>     12  18  24  30  36  42  48  54
>>>     14  21  28  35  42  49  56  63
>>>     16  24  32  40  48  56  64  72
>>>     18  27  36  45  54  63  72  81

 

변환 예제

# 변환 예제
name = 'Aceman'
print('Reversed : ', reversed(name))
print('List : ', list(reversed(name)))
print('Tuple : ', tuple(reversed(name)))
print('Set : ', set(reversed(name)))  # 순서 X

>>> Reversed :  <reversed object at 0x00000247C9BFB5B0>
>>> List :  ['n', 'a', 'm', 'e', 'c', 'A']
>>> Tuple :  ('n', 'a', 'm', 'e', 'c', 'A')
>>> Set :  {'n', 'm', 'A', 'a', 'e', 'c'}

 

해당 글은 인프런의 [프로그래밍 시작하기 : 파이썬 입문-Inflearn Original ] 강의를 듣고 정리한 개인적인 학습 노트 입니다.

반응형
'Programming' 카테고리의 다른 글
  • [Python] 파이썬의 함수
  • [Python] 제어 구조 : while 구문
  • [Python] 제어 구조 : IF 구문
  • JS 필수 문법 정리
기록하기-
기록하기-
  • 기록하기-
    꾸밈없이 끊임없이
    기록하기-
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
      • Episode
  • 블로그 메뉴

    • 깃허브
    • 링크드인
  • 링크

    • Github
    • LinkedIn
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    Django
    python class
    Python 문법
    파이썬 문법
    파이썬문법
    파이썬기초
    python 기초 문법
    파이썬 기초
    python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
기록하기-
[Python] 제어 구조 : For 구문
상단으로

티스토리툴바