[정보처리기사 필기] 프로그래밍 언어 활용 - 106. Python의 기초

1. Python의 기본 문법

  • 변수의 자료형에 대한 선언이 없음
  • 문장의 끝을 의미하는 세미콜론(;)을 사용할 필요가 없음
  • 변수에 연속하여 값을 저장하는 것이 가능
  • if나 for와 같이 코드 블록을 포함하는 명령문을 작성할 때 코드 블록은 콜론(:)과 여백으로 구분
    • 코드 블록 구분 : 명령문에서 코드의 블록을 지정할 때 C와 Java에서는 중괄호({ })를 사용하지만 Python에서는 여백을 통해 코드 블록을 지정
  • 여백은 일반적으로 4칸 또는 한 개의 탭만큼 띄워야 함, 같은 수준의 코드들은 반드시 동일한 여백을 가져야 함 (들여쓰기)

2. Python의 데이터 입출력 함수

  • input() 함수
    • Python의 표준 입력 함수
    • 키보드로 입력받아 변수에 저장하는 함수
    • 입력되는 값은 문자열로 취급되어 저장
    • 입력 형식
      • 변수 = input(출력문자)
        • '출력문자'는 생략이 가능
        • '변수'는 사용자가 임의로 지정할 수 있음
        • 값을 입력하고 Enter키를 누르면 입력한 값이 '변수'에 저장
      • 변수1, 변수2, ... = input(출력문자).split(분리문자)
        • 화면에 '출력문자'가 표시되고 입력받은 값을 '분리문자'로 구분하여 각각 변수1, 변수2, ...에 저장
        • '분리문자'를 생략하면 공백으로 값들을 구분
    • 입력 값의 형 변환 (Casting)
      • input() 함수는 입력되는 값을 무조건 문자열로 저장하므로, 숫자로 사용하기 위해서는 형을 변환해야 함
        • 변환할 데이터가 1개일 때
          • 정수 변환 : 변수 = int(input()) 
          • 실수 변환 : 변수 = float(input())
        • 변환할 데이터가 2개 이상일 때
          • 정수 변환 : 변수1, 변수2, ... = map*(int, input().split())
          • 실수 변환 : 변수1, 변수2, ... = map(float, input().split())
  • print() 함수
    • 입력 형식
      • print(출력값1, 출력값2, ..., sep = 분리문자, end = 종료문자)
        • '출력값'에는 숫자, 문자, 문자열, 변수 등 다양한 값이나 식이 올 수 있음
        • 'sep'는 여러 값을 출력할 때 값과 값 사이를 구분하기 위해 출력하는 문자, 생략할 경우 기본값은 공백 한 칸(' ')
        • 'end'는 맨 마지막에 표시할 문자, 생략할 경우 기본값은 줄 나눔
      • print(서식 문자열 % (출력값1, 출력값2, ...))
        • C와 Java에서 사용했던 서식 문자열이 동일하게 적용
        • 출력값이 한 개일 경우 출력값에 대한 괄호를 생략할 수 있음
        • 예시 : print('%-8.2f' % 200.20)
          • % : 서식 문자임을 지정
          • - : 왼쪽부터 출력
          • 8 : 출력 자릿수를 8자리로 지정
          • 2 : 소수점 이하를 2자리로 지정
          • f : 실수로 출력

3. 리스트 List

  • 여러 요소들을 하나의 이름으로 처리할 때 사용
    • C, Java : 배열
    • Python : 리스트
  • 필요에 따라 개수를 늘이거나 줄일 수 있어서 리스트를 선언할 때 크기를 적지 않음
  • 배열과 달리 하나의 리스트에 정수, 실수, 문자열 등 다양한 자료형을 섞어서 저장할 수 있음
  • Python에서 리스트의 위치는 0부터 시작
  • 형식
    • 리스트명 = [값1, 값2, ...]
      리스트명 = list([값1, 값2, ....])
    • 리스트명은 사용자가 임의로 지정
    • 리스트를 의미하는 대괄호 사이에 저장할 값들을 쉼표(,)로 구분하여 입력

4. 딕셔너리 Dictionary

  • 연관된 값을 묶어서 저장하는 용도로 사용
  • 리스트와의 차이점
    • 리스트 : 저장된 요소에 접근하기 위한 키로 위치에 해당하는 0, 1, 2 등의 숫자를 사용
    • 딕셔너리 : 사용자가 원하는 값을 키로 지정해 사용
  • 딕셔너리에 접근할 때는 딕셔너리 뒤에 대괄호([ ])를 사용
  • 대괄호([ ]) 안에 키를 지정
  • 형식
    • 딕셔너리명 = {키1:값1, 키2:값2, ...}
      딕셔너리명 = dict({키1:값1, 키2:값2, ...})
    • 딕셔너리명은 사용자가 임의로 지정
    • 딕셔너리를 의미하는 총괄호 사이에 저장할 값들을 쉼표로 구분하여 입력

5. Range

  • 연속된 숫자를 생성하는 것
  • 리스트, 반복문 등에서 많이 사용
  • 형식
    • range(최종값)
      range(초기값, 최종값)
      range(초기값, 최종값, 증가값)
    • 0에서 최종값 -1까지 연속된 숫자를 생성
    • 초기값에서 최종값 -1까지 연속된 숫자를 생성
    • 초기값에서 최종값 -1까지 증가값만큼 증가하면서 숫자를 생성, 증가값이 음수인 경우 초기값에서 최종값 +1까지 증가값만큼 감소하면서 숫자를 생성

6. 슬라이스 Slice

  • 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라(slicing) 반환하는 기능
    • 순차형 객체 : 문자열이나 리스트와 같이 메모리에 순차적으로 데이터가 저장되는 자료 구조의 객체
  • 형식
    • 객체명[초기위치:최종위치]
      객체명[초기위치:최종위치:증가값]
    • 초기위치에서 최종위치 -1까지의 요소들을 가져옴
    • 초기위치에서 최종위치 -1까지 증가값만큼 증가하면서 해당 위치의 요소들을 가져옴
    • 증가값이 음수인 경우 초기 위치에서 최종 위치+1까지 증가값만큼 감소하면서 해당 위치 요소들을 가져옴
  • 슬라이스는 일부 인수를 생략하여 사용할 수 있음
    • 객체명[:] 또는 객체명[::]
      객체명[초기위치:]
      객체명[:최종위치]
      객체명[::증가값]
    • 객체의 모든 요소들을 반환
    • 객체의 초기위치에서 마지막 위치까지의 요소들을 반환
    • 객체의 0번째 위치에서 최종위치 -1까지의 요소들을 반환
    • 객체의 0번째 위치에서 마지막 위치까지 증가값만큼 증가하면서 해당 위치의 요소들을 반환