[이것이 취업을 위한 코딩 테스트다 with 파이썬] 1-3강(파이썬의 기본 입출력, 조건문, 반복문)

2021. 4. 28. 18:17민공지능/알고리즘

 

기본 입출력

  • 모든 프로그램은 적절한(약속된) 입출력 양식을 가지고 있다.
  • 프로그램 동작의 첫 번째 단계는 데이터를 입력 받거나 생성하는 것이다.

# 5
# 65 90 75 34 99

# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백을 기준으로 구분하여 입력
data = list(map(int, input().split()))

data.sort(reverse=True)
print(data)

# 실행결과
# [99, 90, 75, 65, 34]

# 데이터가 많지 않은 경우
# 8 3 9
a, b, c = map(int, input().split()) 
# 하나의 묶음으로 만든 것을 packing / a, b, c는 unpacking

print(a,b,c)

# 8 3 9

사용자로부터 입력을 최대한 빠르게 받아야하는 경우, sys.stdin.readline() 메서드를 이용한다.

단, 입력 후 엔터(Enter)가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 함께 사용한다.

import sys

# 문자열 입력 받기
data = sys.stdin.readline().rstrip()
print(data)

# 출력할 변수들
a = 1
b = 2
print(a, b)
# 1 2

# 줄 바꿈 원하지 않을 때 end
print(7, end = " ")
print(8, end = " ")

# 출력할 변수
answer = 7
print("정답은 " + str(answer) + "입니다.")
# 7 8 정답은 7입니다.

# f-string : 문자열 앞에 접두사 f를 붙여 사용
answer = 7
# 변수명을 기입하여 간단히 문자열과 정수를 함께 넣을 수 있다.
print(f'정답은 {answer}입니다.")
# 정답은 7입니다.

조건문

조건문은 프로그램의 흐름을 제어하는 문법니다. 조건에 따라서 프로그램의 로직을 설정할 수 있다.

x = 15

if x >= 10: # 조건이 True이면 출력
	print('x >= 10')
if x >= 0:
	print('x >= 0')
if x >= 30:
	print('x >= 30')
    
# x >= 10
# x >= 0

블록? 특정한 기능을 수행하기 위한 한 단위의 코드 묶음

  • 들여쓰기 : 4개의 공백 문자를 사용하는 것을 표준으로 설정(공백문자 space를 4번 누르는 것을 추천)

조건부 표현식은 왼쪽에 True값을 표현하고 오른쪽에  False값을 표현한다.          


반복문

반복문은 특정한 소스코드를 반복적으로 실행하고자 할 때 사용하는 문법이다.

파이썬에서는 while문과  for문이 있는데, 어떤 것을 사용해도 상관 없다.(for문이 더 간결하다)

 

<while 문>

# 1부터 9까지 모든 정수의 합 구하기 예제(while 문)

i = 1
result = 0

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

# 45
----------------------------------------------------------
# 1부터 9까지의 홀수의 합 구하기 예제(while문)

i = 1
result = 0

# i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
    if i % 2 == 1: #2로 나누었을 때 나머지 값이 1인 경우 = 홀수
        result += i
    i += 1
    
print(result)
# 25
----------------------------------------------------------
# 반복문에서의 무한 루프
# 무한 루프 : 끊임없이 반복되는 반복 구문을 의미
# 반복문을 작성한 뒤에는 항상 반복문을 탈출할 수 있는지 확인한다.

x = 10
while x> 5:
    print(x)
    
# 10
# 10
# 10
# ...(중략)

<for 문>

특정한 변수를 이용하여 'in'뒤에 오는 데이터(리스트, 튜플 등)에 포함되어 있는 원소를

첫 번째 인덱스부터 차례대로 하나씩 방문한다.

for 변수 in 리스트 :

    실행할 소스코드

array = [9,8,7,6,5]

for x in array:
    print(x)
    
# 9
# 8
# 7
# 6
# 5
--------------------------------------------------
# for문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다
# 이때 range(시작 값, 끝 값 + 1)형태로 사용한다
# 인자를 하나만 넣으면 자동으로 시작 값은 0이 된다

result = 0
for i in range(1,10):
    result += i
print(result)
# 45
--------------------------------------------------
# 1부터 30까지 모든 정수의 합 구하기 예제
result = 0
for i in range(1,31):
    result += i
print(result)
# 465
--------------------------------------------------
# 반복문에서 남은 코드의 실행을 건너뛰고, 
# 다음 반복을 진행하고자 할 때 continue를 사용한다

# 1부터 9까지의 홀수의 합을 구할 때
result = 0
for i in range(1,10):
    if i % 2 == 0: # 짝수일 때는 건너뛴다
        continue
    result += i
print(result)
# 25
--------------------------------------------------
# 반복문을 즉시 탈출하고자 할 때 break를 사용한다

# 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
--------------------------------------------------
# 학생들의 합격 여부 판단 예제
# 점수가 80점만 넘으면 합격

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

for i in range(5):
    if scores[i] >= 80:
        print(i + 1, "번 학생은 합격입니다.")
        
# 1 번 학생은 합격입니다.
# 2 번 학생은 합격입니다.
# 5 번 학생은 합격입니다.
--------------------------------------------------
# 특정 번호의 학생은 제외하기

scores = [90,85,77,65,97]
cheating_student_list = {2,4}
for i in range(5):
    if i + 1 in cheating_student_list:
        continue
    if scores[i] >= 80:
        print(i + 1, "번 학생은 합격입니다.")
        
# 1 번 학생은 합격입니다.
# 5 번 학생은 합격입니다.
--------------------------------------------------
# 중첩된 반복문 : 구구단 예제
for i in range(2, 10):
    for j in range(1,10):
        print(i,"X", j, "=", i*j)
    print()


for i in range(2, 10):
    for j in range(1,10):
        print(i,"X", j, "=", i*j)
    print()
    
'''    
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18

3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
...
(중략)
'''