input()
: 한 줄의 문자열을 입력 받는 함수map()
: 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용#공백을 기준으로 구분된 정수형 데이터 입력
data = list(map(int, input().split()))
#공백을 기준으로 구분된 데이터의 개수가 많지 않을 때
a, b, c = map(int, input().split())
사용자로부터 input()
함수 보다 입력을 최대한 빠르게 받아야 하는 경우
sys.stdin.readline()
메서드 이용rstrip()
메서드 함께 이용import sys
#문자열 입력 받기
data = sys.stdin.readline().rstrip()
기본 출력은 print()
함수 이용
print()
는 기본적으로 출력 이후에 줄 바꿈 수행a = 1
b = 2
print(a, b)
print(7, end=" ")
print(8, end=" ")
#출력할 변수
answer = 7
print("정답은 " + str(answer) + "입니다.")
[실행 결과]
1 2
7 8 정답은 7입니다.
문자열 앞에 접두사 'f'를 붙여 사용(파이썬 3.6부터)
중괄호 안에 변수명을 기입하여 간단하게 문자열과 정수 함께 넣을 수 있다.
answer = 7
print(f"정답은 {answer}입니다.")
[실행 결과]
정답은 7입니다.
프로그램의 흐름을 제어하는 문법
x = 15
if x >= 10:
print("x >= 10")
if x >= 0:
print("x >= 0")
if x >= 30:
print("x >= 30")
[실행 결과]
x >= 10
x >= 0
💡 들여쓰기
파이썬은 코드의 블록(Block)을 들여쓰기(Indent)로 지정
if ~ elif ~ else
로, elif나 else 부분은 경우에 따라서 사용하지 않아도 된다.
if 조건문 1:
조건문 1이 True일 때 실행되는 코드
elif 조건문 2:
조건문 1에 해당하지 않고, 조건문 2가 True일 떄 실행되는 코드
else:
위의 모든 조건문이 모두 True 값이 아닐 때 실행되는 코드
[예제]
성적이 90점 이상일 때: A
성적이 90점 미만, 80점 이상일 때: B
성적이 80점 미만, 70점 이상일 때: C
성적이 70점 미만일 때: F
score = 85
if score >= 90:
print("학점: A")
elif score >= 80:
print("학점: B")
elif score >= 70:
print("학점: C")
else:
print("학점: F")
[실행 결과]
학점: B
특정한 두 값을 비교할 때 이용
비교 연산자 | 설명 |
---|---|
X == Y | X와 Y가 서로 같을 때 참(True) |
X != Y | X와 Y가 서로 다를 때 참(True) |
X > Y | X가 Y보다 클 때 참(True) |
X < Y | X가 Y보다 작을 때 참(True) |
X >= Y | X가 Y보다 크거나 같을 때 참(True) |
X <= Y | X가 Y보다 작거나 같을 때 참(True) |
논리 값(True/False) 사이의 연산을 수행할 때 사용
논리 연산자 | 설명 |
---|---|
X and Y | X와 Y가 모두 참(True)일 때 참(True) |
X or Y | X와 Y중에 하나만 참(True)이어도 참(True) |
not X | X가 거짓(False)일 때 참(True) |
다수의 데이터를 담는 자료형 리스트, 튜플, 문자열, 딕셔너리에서 in
연산자와, not in
연산자 제공
연산자 | 설명 |
---|---|
x in 리스트 | 리스트 안에 x가 들어가 있을 때 참(True) |
x not in 문자열 | 문자열 안에 x가 들어가 있지 않을 때 참(True) |
아무것도 처리하고 싶지 않을 때 사용
예시) 디버깅 과정에서 일단 조건문 형태만 만들어 놓고 조건문을 처리하는 부분은 비워놓고 싶은 경우
score = 95
if score >= 90:
pass # 나중에 작성할 소스코드
else:
print("학점: F")
print("프로그램을 종료합니다.")
[실행 결과]
프로그램을 종료합니다.
조건문에서 실행될 소스코드가 한 줄인 경우, 굳이 줄 바꿈을 하지 않고 간략하게 표현 가능.
score = 85
if score >= 80: result = "Success"
else: result = "Fail"
print(result) #Success
조건부 표현식(Conditional Expression)은 if ~ else문을 한 줄에 작성할 수 있도록 해줌.
score = 85
result = "Success" if score >= 80 else "Fail"
print(result) #Success
파이썬에서는 다른 프로그래밍 언어와 다르게 조건문 안에서 수학의 부등식을 그대로 사용 가능.
ex) x > 0 and x < 20
과 0 < x < 20
은 같은 결과 반환
특정 소스코드를 반복적으로 실행하고자 할 때 사용하는 문법
파이썬에서는 while
문과 for
문이 있는데, 어떤 것을 사용해도 상관 없지만, 코딩 테스트에서 실제 사용 예시를 확인해 보면, for
문이 더 간결한 경우가 많다.
반복문에서 끊임없이 반복되는 구문인 무한 루프(Infinite Loop)를 유의해야함.
예시) 1부터 9까지 모든 정수의 합 구하기
i = 1
result = 0
#i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
result += i
i += 1
print(result) #45
예시) 1부터 9까지 홀수의 합 구하기
i = 1
result = 0
#i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
if i % 2 == 1:
result += i
i += 1
print(result) #25
in
뒤에 오는 데이터(리스트, 튜플 등)에 포함되어 있는 원소를 첫 번째 인덱스부터 차례대로 하나씩 방문
for 변수 in 리스트:
실행할 소스코드
range()
를 주로 사용range(시작값, 끝값 + 1)
형태로 사용예시) 1부터 9까지 모든 정수의 합 구하기
result = 0
#i는 1부터 9까지 모든 값을 순회
for i in range(1, 10):
result += i
print(result) #45
반복문에서 남은 코드의 실행을 건너뛰고, 다음 반복을 진행하고자 할 때 사용
예시) 1부터 9까지 홀수의 합 구하기
result = 0
for i in range(1, 10):
if i % 2 == 0:
continue
result += i
print(result) #25
반복문을 즉시 탈출하고자 할 때 사용
예시) 1부터 5까지 정수 차례대로 출력
i = 1
while True:
print("현재 i의 값:", i)
if i == 5:
break
i += 1
[실행 결과]
현재 i의 값: 1
현재 i의 값: 2
현재 i의 값: 3
현재 i의 값: 4
현재 i의 값: 5
인덱스와 리스트의 값 모두 전달하여 pythonic하게 반복문 작성가능
예시)
rainbow = ['빨', '주', '노', '초', '파', '남', '보']
#range 사용
for idx in range(len(rainbow)):
print(f'무지개의 {idx + 1}번 째 색은 {rainbow[idx]}')
#enumerate 사용
for idx, color in enumerate(rainbow):
print(f'무지개의 {idx + 1}번 째 색은 {color}')
[실행 결과]
무지개의 1번 째 색은 빨
무지개의 2번 째 색은 주
무지개의 3번 째 색은 노
무지개의 4번 째 색은 초
무지개의 5번 째 색은 파
무지개의 6번 째 색은 남
무지개의 7번 째 색은 보