파이썬 기본문법

파이썬 기본문법

  • 실수를 연산할때 0.9같은 결과값은 이진수로 표시할 수 없기때문에 rount()함수등을 사용한다.
  • 나누기연산자(/)는 나눠진 결과를 실수형으로 반환한다. 몫을 얻기위해선 몫연산자(//), 제곱은 (**) 나머지는(%) 연산자를 사용하여 구현할 수 있다.
  • list를 통해 데이터를 넣을 수 있다.
  • indexing을 통해 리스트의 특정한 원소에 접근할 수 있다
  • slicing을 이용해 리스트에서 원하는 원소를 추출해 올 수 있다.
  • 리스트 컴프리헨션을 통해 리스트를 원하는 조건문을 통해 만들 수 있다.

  • 변수명.append() 를 통해 리스트에 원소를 하나 삽입한다.
  • 변수명.sort() 은 기본 정렬기능으로 오름차순을 정렬한다.
  • 변수명.sort(reverse = True) 은 내림차순으로 정렬한다.
  • 변수명.reverse() 를 통해 리스트에 원소의 순서를 모두 뒤집어 놓는다.
  • 변수명.insert(삽입할 위치 인덱스, 삽입 할 값) 특정한 인덱스 위치에 원소를 삽입할 때 사용한다.
  • 변수명.count(특정값) 특정한 값을 가지는 데이터의 개수를 셀 때 사용한다.
  • 변수명.remove(특정값) 특정한 값을 가지는 원소를 제거하는데 값을 가진 원소가 여러개면 하나만 제거한다.

  • 특정한 원소의 존재 유무를 알수있는 remove_set={}을 이용하여 리스트에서 특정 값을 모두 찾아서 제거할 수 있다.
  • 변수를 초기화할때 큰따옴표나 작은 따옴표를 이용
  • 문자열에 덧셈을 이용하면 문자열이 더해져서 연결된다.

  • 튜플 자료형은 리스트와 유사하지만 한번 선언된 값을 변경할 수 없다.
  • 리스트는 [] 를 사용하고 튜플은 () 사용한다
  • 튜플은 서로다른 성질의 데이터를 묶어서 관리해야 할때, 최단 경로 알고리즘에서 (비용,노드번호)의 형태로 튜플 자료형을 자주 사용한다.
  • 리스트보다 메모리를 효율적으로 사용해야 할때

  • 사전자료형은 키와 값의 쌍을 데이터로 가지는 자료형이다.
  • dict() 함수를 이용해 설정할 수 있다.

  • data = dict()
    data['홍길동']='97'
    data['이순신']='98'
    
    print(data)
    
    b={
      '홍길동':97,
      '이순신':98
    }
    
    print(b)
    
    key_list=list(b.keys())
    print(key_list)
  • 집합자료형은 set()함수를 이용해 만들고 중복되는 원소는 모두 제거된다. {}에 원소를 넣음으로 초기화 할 수도있다.
  • 사전자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
  • input()함수는 한줄의 문자열을 입력받는 함수
  • map()함수는 리스트의 모든 원소에 각각 특정한 함수를 적용
  • 각데이터를 공백을 기준으로 구분하여 입력

  • 파이썬의 경우 sys라이브러리에 정의되어 있는 sys.stdin.readline()메서드를 이용한다. 단, 입력후 엔터가 줄바꿈 기호로 입력되므로 rstrip()메서드와 함께 사용한다.
  • print()는 기본적으로 출력이후 줄바꿈을 수행하나 end속성을 이용하여 줄바꿈을 피할 수 있다.

  • a = 1
    b = 2
    print(a,b)
    print(7, end=" ")
    print(8, end=" ")
    
    answer = 7
    print("정답은"+str(answer)+"입니다.")
  • 파이썬에선 f를 붙여 f-string을 사용할 수있다

  • answer=7
    print(f"정답은{asnwer}입니다")
  • 파이썬에서 코드의 블록을 들여쓰기로 지정한다.
  • 들여쓰기 할때 4개의 공백문자를 사용하는 것을 표준으로 설정한다
  • 파이썬에선 else if 를 elif로 줄여서 사용한다

  • score = 65
    
    if score >= 90:
      print("학점:A")
    elif score >= 80:
      print("학점:B")
    elif score >= 70:
      print("학점:C")
    elif score >= 60:
      print("학점 D")
    else:
      print("F!!")
  • 파이썬에선 and or not 등의 단어를 사용해서 논리 연산자를 사용한다.
  • x in 리스트 => x가 리스트안에 있으면 True, x not in 리스트 => x 가 리스트안에 없을떄 True 반환
  • 아무것도 처리하고 싶지 않을때는 pass 키워드를 사용한다.

  • score = 90
    
    if score >= 90:
        pass
    else:
      print("a < 90")
  • 파이썬에서는 x > 0 and x < 20 과 0 < x < 20과 같은 결과를 반환한다.

  • 반복문을 작성한 뒤에는 항상 반복문을 탈출 할 수 있는지 확인한다.
  • for 변수 in 리스트 => 리스트의 원소를 변수가 하나씩 방문한다.
  • for문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다
  • range(시작값, 끝값+1)형태로 사용한다.
  • 반복문에서 남은 코드의 실행을 건너뛰고 다음반복을 하려할땐 continue를 사용한다.

  • result = 0
    
    for i in range(1,10):
      if i%2 ==0:
        continue
      result += i
    
    print(result)
  • 반복문을 즉시 탈출하고자 할땐 break를 사용한다.

  • 함수는 파이썬 내장함수와 사용자가 정의한 함수로 나눠진다.
  • ``` def 함수명(매개변수): 실행할 소스코드 return 반환 값 ``` 매개변수는 함수 내부에서 사용할 변수이고 반환 값은 함수를 작동시켰을때 반환 되는 값이다.
  • 함수 바깥에 선언된 변수를 사용하려면 global 키워드를 사용해야만 한다.

  • 람다표현식을 이용하면 함수를 한줄에 간편하게 작성할 수 있다.

  • list1 = [1,2,3,4,5]
    list2 = [6,7,8,9,10]
    
    result = map(lambda a,b:a+b,  list1, list2)
    
    print(list(result))

    코딩테스트 유용한 표준 라이브러리

  • 내장함수
  • itertools : 반복되는 형태의 데이터를 처리하기 유용
  • heapq : 우선순위 큐 기능을 구현하기 위해 사용
  • bisect : 이진탐색 기능을 제공
  • collections 덱, 카운터 등의 유용한 자료구조를 포함
  • math : 필수적인 수학적 기능 제공 (ex) 팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수 관련함수, 파이와 같은 상수 포함
  • 내장함수

  • sum : 원소값을 모두 더할때
  • mid : 원소중 가장 작은값, max: 원소중 가장 큰값
  • eval : 흔히 우리가 아는 수식을 연산 해준다.
  • sorted : 오름차순으로 원소 정렬, reverse=True를 넣으면 내림차순으로 된다.

  • 순열과 조합

    순열 :서로다른 n개에서 서로다른 r개를 선택하여 일렬로 나열하는것
    from itertools import permutations
    
    data = ['A', 'B', 'C']
    
    result = list(permutations(data,3))
    print(result)

    조합 : 서로다른 n개에서 순서에 상관없이 서로다른 r개를 선택하는 것

    from itertools import combinations
    
    data = ['A', 'B', 'C']
    
    result = list(combinations(data,2))
    print(result)

    중복 순열 : product 함수 사용

    from itertools import product
    
    data = ['A', 'B', 'C']
    
    result = list(product(data, repeat=2))
    print(result)

    중복 조합 : combinations_with_replacement 함수 사용

    from itertools import combinations_with_replacement
    
    data = ['A', 'B', 'C']
    
    result = list(combinations_with_replacement(data, 2))
    print(result)

    Counter

  • Counter객체는 각원소가 몇번씩 등장했는지 체크하기 위해 사용한다.

  • from collections import Counter
    
    counterArr = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
    
    print(counterArr['blue'])
    print(counterArr['green'])
    print(counterArr['red'])
    print(dict(counterArr))

    Math 라이브러리

  • 최대 공약수를 구해야 할때는 math라이브러리의 gcd()함수를 이용한다.

  • import math
    
    def lcm(a,b):
        return a * b // math.gcd(a,b)
    
    a=21
    b=14
    
    print(math.gcd(21,14))
    print(lcm(21,14))

    좋은 웹페이지 즐겨찾기