인천의 자유인

파이썬 한줄로 if, for문 작성하기 본문

Python/Python공부

파이썬 한줄로 if, for문 작성하기

Youngook 2024. 6. 12. 08:31
728x90
반응형

한줄 for문과 if문을 입력 할 때에 주의 할 점은 아주 간단한 코드(명령문이 한줄)일 때 가능하다.
그렇다면 이제 먼저 if문부터 알아보자
 


1. if 문

 

1. if

- 기존 방식

num = 2 
if num == 2: 
	print('정답')

 
- 한줄 코드

num = 2
if num == 2: print('정답')

 
그냥 if뒤에 붙이면 된다.
 

2. if~else

-기존 방식

num = 2

if num == 2:
    print('정답')
else:
    print('오답')

 
-한줄 코드

num = 2
print('정답') if num == 2 else print('오답')

그냥 if와 if~else와 다른 점은 첫 번째 조건의 명령문이 맨 처음에 온다는 사실이다.
 

3. if~ elif ~else

- 기존 방식

num = 5

if num <5:
    print('5보다 작다.')
elif num > 5:
    print('5보다 크다.')
else:
    print('5가 맞다.')

 
- 한줄 코드

num = 5
print('5보다 작다.') if num < 5 else print('5보다 크다.') if num > 5 else print('5가 맞다.')
# print('5보다 작다.' if num< 5 else '5보다 크다.' if num > 5 else '5가 맞다.')

주석 처리 한 것과 안한 것 결과는 같다. 편한 것을 쓰면 된다.
개인적으로는 if elif else문 같은 경우에는 그냥 쓴다. 한 줄로 쓰기에는 귀찮고 복잡해지는 것 같아서 오히려 기존 방식이 더 좋은 것 같다.

반응형

2. for 문

 

1. 일반 for문

 
- 기존 방식

numbers = [1,2,3,4,5]

for i in numbers:
    print(i, end=' ')
    
# 출력 결과 -> 1 2 3 4 5

 
- 한줄 코드

numbers = [1,2,3,4,5]

[print(i, end=' ') for i in numbers]

대괄호는 꼭 해야 한다. 안하면 에러 난다.
 

2. 중첩 for문

- 기존 형식

numbers = [[1,2,3,4,5],[6,7,8,9,10]]

for i in numbers:
    for j in i:
        print(j, end=' ')

# 출력 결과 -> 1 2 3 4 5 6 7 8 9 10

 
-한줄 코드

numbers = [[1,2,3,4,5],[6,7,8,9,10]]

[print(j,end=' ') for i in numbers for j in i]

일반 for과 비슷한 원리다.
 
 


3. for문 + if 문

 

1. for + if

- 기존 코드

numbers = [1,2,3,4,5,6,7,8,9,10]

for i in numbers:
    if i%2 == 0:
        print(i, end=' ')

# 실행 결과 -> 2 4 6 8 10

 
- 한줄 코드

numbers = [1,2,3,4,5,6,7,8,9,10]

[print(i,end=' ') for i in numbers if i%2 == 0]

앞의 한줄 for문 if문을 잘 이해했으면 이것을 이해 하는데 있어서 크게 어려움이 없을 것이다.
 

2. for + if~else

-기존 방식

numbers = [1,2,3,4,5,6,7,8,9,10]

for i in numbers:
    if i%2 == 0:
        print(f'{i}(짝)', end = ' ')
    else:
        print(f'{i}(홀)', end = ' ')
        
# 실행결과 -> 1(홀) 2(짝) 3(홀) 4(짝) 5(홀) 6(짝) 7(홀) 8(짝) 9(홀) 10(짝)

 
- 한줄 코드

numbers = [1,2,3,4,5,6,7,8,9,10]

[print(f'{i}(짝)', end=' ') if i%2 == 0 else print(f'{i}(홀)', end=' ') for i in numbers]

 
앞서 봤던 조건 하나만 했을 경우와는 다르다. 이럴 때에는 if문 전체가 앞으로 와야 한다. 그리고 for문은 그 다음에 적어주어야 한다. 이점 유의하도록 하자.
 
 
한줄 if문, for문은 매우 유용하다. 코딩 실습 할 때에 이러한 기술을 많이 익혀서 더 효과적으로 할 수 있기를 바란다.

728x90
반응형