[정보처리기사실기] Python

    반응형

    7과목. 프로그래밍 언어

    📒 04. Python


    1. Python

    (1) Python 소개

    • 귀도 반 로섬에 의해 개발된 언어
    • 구글과 같은 대형 기술 회사에서 광범위하게 사용

    (2) Python의 특징

    • a) 스크립트 언어
      - 별도의 컴파일 과정 없이 코드를 실행할 수 있는 스크립트 언어 
    • b) 동적 타이핑
      - 변수의 타입을 실행 시점에 결정하는 동적 타이핑을 지원
    • c) 플랫폼 독립적
      - 다양한 운영체제에서 실행 가능한 플랫폼 독립적 언어
    • d) 간결한 문법
      - 배우기 쉽고 읽기 쉬운 간결한 문법
    • e) 확장성 및 이식성
      -높은 확장성을 가지며, 다른 시스템으로의 이식성이 좋음
    • f) 표준 라이브러리
      - 방대한 표준 라이브러리를 제공하여 다양한 작업을 쉽게 처리

     

     

    2. Python 문법

    (1) 사칙연산

    print(2+5) #7
    print(3/2) #1 or 1.5
    print(3//2) #1  (정수//정수 = 정수)
    print(3/2.0) #1.5
    print(3*4) #12

    (2) 변수 사용

    a=3
    b=2.0
    print(a/b) #1.5

    (3) 조건문

    a = 10
    if a > 10 :
    	print("a가 10보다 크다")
    elif a > 5 :
    	print("a가 5보다 크다")
    else :
    	print("a가 5보다 작다")

    (4) for 반복문

    for i in [1,2,3]:
    	print(i)
    # i값에 하나씩 값이 담아짐
    #1
    #2
    #3

    (5) while 반복문

    i = 0
    sum = 0
    while i < 3:
    	sum = sum + i;
        i = i + 1
    print(sum) #3

    (6) range

    • 인자값의 범위를 리스트 형태로 출력
    # range(x) : 0부터 x-1까지 출력
    print(range(3)) #[0,1,2]
    
    # range(x,y) : x부터 y-1까지 출력
    print(range(3,6)) #[3,4,5]
    
    # range(x,y,z) : x부터 y-1까지 z만큼 증감
    print(range(3,15,3)) #[3,6,9,12]
    
    int_val = range(2,10,2)
    for i in int_val:
    	print(i)
    #2
    #4
    #6
    #8

    (7) 함수

    • def로 선언하며 들여쓰기가 되어있는 곳까지 함수의 범위
    def sum(i,j):
    	return i+j
    print(sum(10,2)) #12
    
    # 람다함수 : 함수를 간단하게 표현한 방식
    lambda num : num + 100
    
    # map(함수, 배열형태)
    # 배열에서 하나씩 값을 꺼내 함수로 넘김
    map(lambda num : num + 100, [1,2,3,4,5])

    (8) 출력

    # 기본으로 print는 enter를 포함
    a = ["대","한","민","국"]
    for i in a:
    	print(i)
    # 대
    # 한
    # 민
    # 국
    
    # 한 줄로 쓰고싶을 땐 end 이용
    for i in a:
    	print(i, end="")
    # 대한민국

     

     

    3. 문자열 함수

    (1) join

    • 여러 개의 문자를 하나로 결합
    # '구분자'.join(string) : 구분자를 기준으로 문자열 합치기
    str = '^'.join(['a','b','c'])
    print(str) #a^b^c
    
    # 구분자 없을 경우
    str = ".join(['a','b','c'])
    print(str) #abc

    (2) partition

    • 인자값을 기준으로 첫 번째 조건이 발견되면, 분리하여 튜플 형태로 반환
    str = "hungjik_wonju_kangwon"
    arr = str.partition('_');
    print(arr) #('hungjik','_','wonju_kangwon')

    (3) split

    • 인자값을 기준으로 분리하여 리스트 형태로 반환
    str = "hungjik_wonju_kangwon"
    arr = str.split('_');
    print(arr) #['hungjik','wonju','kangwon']

    (4) format

    • %연산자와 포맷 스트링을 사용하는 방법
    print("Int : %d, Str : %s, float : %f" % (22, "peazh", 167.5))
    #Int : 22, Str : peazh, float : 167.500000

    (5) 대문자 / 소문자 변환

    #upper : 모든 문자를 대문자로 변경
    str1= "peazh"
    print(str1upper()) #PEAZH
    
    #lower : 모든 문자를 소문자로 변경
    str2= "PEAZH
    print(str2.lower()) #peazh

    (6) 공백 제거

    # lstrip : 좌 공백 제거
    # rstrip : 우 공백 제거
    # strip : 좌/우 공백 제거
    str = " peazh "
    print(str.strip()) #peazh

    (7) max

    • 문자열에서 max 함수는 사전순으로 값을 판단
    • 대.소문자 같이 있을 때는 아스키코드로 변환하여 높은 값을 리턴
    country = ['Korea','Spain','Germany','Canada',france','Serbia']
    
    print(max(country)) # france
    
    # max(country, key=lambda x:x[2]) : 각각의 2번 인덱스의 값만 가지고 최대값 출력
    # 동일 순위일 땐 첫 번째 나오는 요소만 출력
    print(max(country, key=lambda x:x[2])) # Korea
    print(max(country, key=lambda i:i.lower()) # Spain

     

    더보기

    들여쓰기로 같은 블록인지 구분

     

    4. 자료구조

    (1) 리스트(List)

    • 배열과 유사하게 여러 요소를 갖는 집합
    • 동적 배열로서 크기를 자유롭게 조정할 수 있음
    • 각 요소를 서로 다른 타입이 될 수 있음
    # 리스트 슬라이스
    list = [1,2,3,4,5,6,7,8]
    print(list[1:3]) # [2,3]
    print(list[:3]) # [1,2,3]
    print(list[3:]) # [4,5,6,7,8]
    print(list[1::2]) # [2] 시작:끝:증분값
    
    # 리스트 추가
    list.append(9)
    print(list) # [1,2,3,4,5,6,7,8,9]
    
    # insert(x,y) : x 자리에 y값을 넣기
    listA = [1,2,3,4]
    print(listA.insert(1,5)) # [1,5,2,3,4]
    
    # 리스트 삭제
    del list[0]
    print(list) # [2,3,4,5,6,7,8,9]
    
    # 리스트 검색
    # index(x) : x가 있는 인덱스 출력
    print(list.index(3)) # 1
    # count(x) : x의 개수 출력
    print(list.count(3)) # 1

    (2) 튜플

    • 여러 요소를 갖는 구조로 리스트와 비슷
    • 순서의 의미가 있고 중복 허용
    • 요소의 추가, 수정, 삭제가 불가능한 불변의 특성을 가짐
    • 소괄호() 또는 괄호 없이 표현 가능
    tup = ("peazh", 20, 167.5)
    print(tup) # ('peazh', 20, 167.5)

    (3) set

    • 중복 없는 유일한 요소들로 구성
    • 순서가 없으며, 인덱스로 요소에 접근할 수 없음
    set_data = {1,2,3,4,1,2,3,}
    print(set_data) # {1,2,3,4}
    
    # 값 삭제
    set_data.remove(3)
    print(set_data) # {1,2,4}
    set_data.discard(3)
    print(set_data) # {1,2,4}
    # discard 안전한 삭제 - 값이 없다해도 오류 발생하지 않음
    # remove 값이 없는 걸 삭제하면 오류 발생
    
    # intersection (교집합)
    set1 = {1,2,3,4,5}
    set2 = {3,4,5,6,7}
    result = set1.intersection(set2)
    print(result) # {3,4,5}
    
    # union (합집합)
    set3 = {1,2,3,4,5}
    set4 = {3,4,5,6,7}
    result1 = set3.union(set4)
    print(result1) # {1,2,3,4,5,6,7}
    
    # difference (차집합)
    set5 = {1,2,3,4,5}
    set6 = {3,4,5,6,7}
    result2 = set5.difference(set6)
    print(result2) # {1,2}

    (4) 딕셔너리(dict)

    • key와 value 쌍으로 구성된 구조
    • 키를 통해 빠르게 값을 찾을 수 있는 해시테이블 구조
    • 키는 변경 불가능한 타입만 가능하며, 값은 어떤 타입이든 될 수 있음
    # 선언
    dict_data = {"name":"peazh","age":20,"height":167.5}
    print(dict_data) # {"name":"peazh","age":20,"height":167.5}
    print(dict_data['name']) # peazh
    
    # key만 추출
    keys = dicc_data.keys();
    print(keys) #['name','age','height']
    for i in keys
    	print(i)
    # name
    # age
    # height
    
    # 값만 추출
    values = dict_data.values();
    print(values) #['peazh',20,167.5]
    for i in values
    	print(i)
    # peazh
    # 20
    # 167.5
    
    # key가 있는지 체크하여 value 가져오기
    print(dict_data.get("name")) # peazh
    더보기

    {} 중괄호 쓰는 건 set, dict

    값만 들어가면 set, key:value 형식이면 dict

    ** 2 : 제곱

    sort : 오름차순

    sort(reverse=True) : 내림차순

    sel : 나 자신(자바에서 this 역할)

    global : 함수에서 전역 변수를 쓴다는 의미

     

    [아스키코드]

    A : 65

    a: 97

     

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

    반응형

    댓글