Python for Loops : 파이썬 for문

for loop

planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
for i in planets:
    print(i, end=' ') # print all on same line
Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune 

for 문의 구조

  • variable (변수, i)
  • sets (리스트 외, planets) : in 뒤에 오며 보통 리스트, 튜플 등 iterate 할 수 있는 집합체가 온다.

in 을 이용해 둘을 엮는다.

예시) 스트링에서 대문자만 출력하기

s = 'steganograpHy is the practicE of conceaLing a file, message, image, or video within another fiLe, message, image, Or video.'
msg = ''

for char in s:
    if char.isupper():
        print(char, end='') 
HELLO


range() 함수

연속된 숫자(정수)를 리턴한다.

for문과 같이 이용할 때 효과적이다. (range 함수는 iterate 가능한 집합체 이므로 for문과 사용가능)

예시1)인자 1개일때(n), 0부터 n-1까지

happy = list(range(5))    
print(happy[i])
[0,1,2,3,4]

예시2)인자 2개(a,b), a부터 b-1까지

happy = list(range(1,5))
print(happy)
[1,2,3,4]

예시3) 인자3개(a,b,c)일때, a부터 b-1까지 c간격으로

happy = list(range(1,5,2))
print(happy)

jolly = list(range(5,1,-2))
print(jolly)
[1,3]
[5,3]


List comprehensions

파이썬에만있는 리스트 구현기능

한줄 안에 조건문, 반복문 등을 사용해서 구성할 수 있다.

squares = [n**2 for n in range(10)]
print(squares)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

보통 다른 언어에서는…

squares = []
for n in range(10):
    squares.append(n**2)
squares

다른예시)

loud_short_planets = [planet.upper() + '!' for planet in planets if len(planet) < 6]
loud_short_planets
['VENUS!', 'EARTH!', 'MARS!']

[출력문(for이전), 집합문(for부터 if전)), 조건문(if이후)]

SQL 문이랑 비슷함.

[
    planet.upper() + '!'  #SELECT
    for planet in planets  #FROM
    if len(planet) < 6  #WHERE
]