관리자 글쓰기
코테용 파이썬 문법 정리2
2023. 11. 9. 15:03 - pingu-s

조건문

 

x = 15

if x >= 10:
  print(x)

 

 

score = 85

if score >= 90:
  print("학점: A")
elif score >= 80:
  print("학점: B")
elif score >= 70:
  print("학점: C")
else:
  print("학점: F ")

 

 

들여쓰기가 같은 부분은 함께 실행된다.

 

score = 85

if score >= 70:
  print("성적이 70점 이상입니다.")
  if score >= 90:
    print("우수한 성적입니다.")
else:
  print("성적이 70점 미만입니다.")
  print("조금 더 분발하세요.")

print("프로그램을 종료합니다.")

 

비교 연산자

 

X == Y X != Y X > Y X < Y X >= Y X <= Y

 

논리 연산자

 

X and Y X or Y not X

 

 

파이썬의 기타 연산자

 

X in 리스트 리스트 안에 X가 들어가 있을 때 참(True)이다.
X not in 문자열 문자열 안에 X가 들어가 있지 않을 때 참(True)이다.

 

파이썬에서는 조건문의 값이 참(True)이라고 해도, 아무것도 처리하고 싶지 않을 때 pass 문을 이용할 수 있다.

 

score = 85

if score >= 80:
  pass # 나중에 작성할 소스코드
else:
  print("성적이 80점 미만입니다.")

print("프로그램을 종료합니다.")

 

조건문에서 실행될 소스코드가 한 줄인 경우, 굳이 줄 바꿈을 하지 않고도 간략하게 표현할 수 있다.

 

score = 85

if score >= 80: result = "Success"
else: result = "Fail"

print(result)

 

조건부 표현식(Conditional Expression)을 이용하면 if ~ else문을 한 줄에 작성해 사용할 수 있다.

 

score = 85

result = "Success" if score >= 80 else "Fail"
print(result)

 

조건부 표현식은 리스트에 있는 원소의 값을 변경해서, 또 다른 리스트를 만들고자 할 때 매우 간결하게 사용할 수 있다. 예를 들어 리스트에서 특정한 원소의 값만을 없앤다고 해보자. 원래 일반적인 형태의 조건문을 이용하면 다음과 같이 작성해야 한다.

 

a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}

result = []
for i in a:
  if i not in remove_set:
    result.append(i)

print(result)

 

이 코드는 다음과 같이 간단하게 작성할 수 있다.

 

a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}

result =[i for i in a if i not in remove_set]

print(result)

 

while 문

 

i = 1
result = 0

# i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
  result += i
  i += 1

print(result)

 

1부터 9까지의 수 중에서 홀수만 더함

 

i = 1
result = 0

# i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
  if i % 2 == 1:
    result += i
  i += 1

print(result)

 

for 문

 

while 문으로 구현했던, 1부터 9까지의 정수의 합을 구하는 예제를 동일하게 for문으로 작성한 코드이다. for문에서 수를 차례대로 나열할 때는 range()를 주로 쓰는데 range(시작 값, 끝 값 + 1) 형태로 쓰인다.

 

result = 0

# i는 1부터 9까지의 모든 값을 순회
for i in range(1, 10):
  result += i

print(result)

 

range()의 값으로 하나의 값만을 넣으면, 자동으로 시작 값은 0이 된다. 주로 리스트나 튜플 데이터의 모든 원소를 첫 번째 인덱스부터 방문해야 할 때 이 방법을 사용한다. 리스트의 인덱스는 0부터 출발하기 때문이다.

 

scores = [90, 85, 77, 65, 97]

for i in range(5):
  if scores[i] >= 80:
    print(i + 1, "번 학생은 합격입니다.")

 

반복문 안에서 continue를 만나면 프로그램의 흐름은 반복문의 처음으로 돌아간다.

 

scores = [90, 85, 77, 65, 97]
cheating_list = {2, 4}

for i in range(5):
  if i + 1 in cheating_list:
    continue
  if scores[i] >= 80:
    print(i + 1, "번 학생은 합격입니다.")

 

반복문은 얼마든지 중첩해서 사용할 수 있다. 아래는 구구단 2단부터 9단까지의 모든 결과를 출력하는 코드이다.

 

for i in range(2, 10):
  for j in range(1, 10):
    print(i, "X", j, "=", i * j)
  print()

 

'개발 > Python' 카테고리의 다른 글

입출력 관련  (1) 2024.01.05
코테용 파이썬 라이브러리 문법  (1) 2023.11.12
코테용 파이썬 문법 정리3  (0) 2023.11.09
코테용 파이썬 문법 정리  (0) 2023.11.08