개탕 IT FACTORY

파이썬 문법 정리 본문

프로그래밍/Python

파이썬 문법 정리

rendar02 2021. 1. 14. 22:40
반응형
  1. 정수형, 실수형

     // 정수형
     a = 123 // 양의 정수
     a = -123 // 음의 정수
     a = 0
     // 실수형
     a = 157.93 // 양의 실수
     a = -1837.2 // 음의 실수 
     a = 5. // 소수부가 0일시 생략 가능  
    
  2. 연산자

    1. 사칙연산

       a = 3 
       b = 4 
       a + b // 7  
       a * b // 12 
       a / b // 0.75 
       a - b // -1
    2. 제곱을 나타내는 ** 연산자

       a = 3 
       b = 4
       a ** 4 / 3*3*3*3 결과와 같음 81 출력
    3. 나머지를 반환하는 % 연산자

       7 % 3 // 1 출력 
       3 % 7 // 3 출력 
    4. 나눈후 몫을 반환하는 // 연산자

       7 / 4 // => 1.75 반환
       7 // 4 // => 1 반환 
  3. 문자열

    1. 문자열 만드는 4가지 방법

       1. 큰 따옴표(")
       "Hello World"
       2. 작은 따옴표(')
       'Hellow World'
       3. 큰 따옴표 3개 연속 사용
       """Hello World"""
       4. 작은 따옴표 3개 연속 사용
       '''Hellow World'''
    2. 문자열에 작은 따옴표(') 포함시키기

       food = "python's favorite food is perl"
       => 잘 출력됨 
       food = 'python's favorite food is perl'
       => SyntaxError: invalid syntax
    3. 문자열에 큰 따옴표(") 포함시키기

       say = '"Python is very easy." he says.'
       => 작은 따옴표로 묶어두면된다 
    4. 백슬래시를 사용하여 작은 따옴표('), 큰 따옴표(") 포함

       food = 'Python\'s favorite food is perl'
       say = "\"Python is very easy.\" he says."
    5. 문자열 줄바꾸는 방법

       1. 이스케이프 코드 (\n) 삽입
       multiline = "Life is too short\nYou need python"
       2. 작은따옴표 3개
       multiline='''
       ... Life is too short
       ... You need python
       ... '''
       3. 큰따옴표 3개
       multiline="""
       ... Life is too short
       ... You need python
       ... """
    6. 문자열 연산

       1. 문자열 연결 (+)
       head = "python"
       tail = " is good"
       head + tail
       'python is good'
       2. 문자열 곱하기
       a = "python"
       a * 2
       'pythonpython'
       3. 곱하기 응용
       print("=" * 50)
       print("My Program")
       print("=" * 50)
      
       출력 
       ==================================================
       My Program
       ==================================================
      
       4. 문자열 길이 구하기 (len함수)
       a = "Life is too short"
       len(a) // 문자열 길이구하는 함수 
       17
      • 인덱싱과 슬라이싱 등은 이 곳 참조
  4. 리스트(배열)

    1. 리스트 만들기

       a = [1,2,3,4,5,6,7,8,9] // []=> 대괄호를 통해 만든다 
       print(a) //[1,2,3,4,5,6,7,8,9] 출력
      
       b = list() // 비어있는 리스트는 이런 형식으로도 생성가능
      
       a = []
       b = [1, 2, 3]
       c = ['Life', 'is', 'too', 'short']
       d = [1, 2, 'Life', 'is']
       e = [1, 2, ['Life', 'is']]
      
    2. 리스트 인덱싱과 슬라이싱

      1. 인덱싱

        a = [1,2,3,4,5,6,7,8,9]
        
        # 뒤에서 첫번째 원소 출력
        print(a[-1]) // 9 출력
        
        # 뒤에서 세번째 원소 출력
        print(a[-3]) // 7 출력
        
        a[3] = 7 // 원소값 변경 
        print(a) // [1,2,3,7,5,6,7,8,9]
        
        b = a[0] + a[2]
        print(b) // 4 출력 [0] = 1, [2] = 3
        
        a = [1, 2, 3, ['a', 'b', 'c']]
        
        print(a[3]) // ['a', 'b', 'c'] 출력
        
        printf(a[3][0]) // 'a' 출력
      2. 슬라이싱

        a = [1,2,3,4,5]
        print(a[0:2]) // [1,2] 출력 
        
        print(a[1:3]) // [2.3] 출력
        
        # a[시작 인덱스: 끝 인덱스]
        # 끝 인덱스의 경우 -1 한 값과 동일 
    3. 리스트 컴프리헨션

       # 리스트를 초기화하는 방법중 하나 
      
       # 대괄호([]) 안에 조건문과 반복문을 넣는 방식으로 초기화
      
       array = [i for i int range(20) if i % 2 == 1 ]
       print(array) // [1,3,5,7,9,11,13,15,17,19] 출력
      
       // 일반적인 방법으로 적용시 
      
       array = []
       for i in range(20):
           if i % 2 == 1 :
               array.append(i)
      
       print(array) 
      
       # 2차원 리스트를 초기화할 때 매우 효과적 (코딩테스트 책참조)
      
       n = 2
       m = 3
       array = [[0] * m for _ in range(n)]
       print(array) // [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
      
    4. 기타 리스트 관련 메서드

       a = [1,4,3]
       print(" 기본 리스트: ", a) // 기본 리스트 : [1,4,3]
      
       # 리스트에 원소 삽입
       a.append(2)
       print("삽입 : " ,a) // 삽입 : [1,4,3,2]
      
       # 오름차순 정렬
       a.sort()
       printf("오름차순 정렬 : ", a) // 오름차순 정렬 : [1,2,3,4]
      
       # 내림차순 정렬
       a.sort(revers = True) 
       print("내림차순 정렬 : ",a) // 내림차순 정렬 : [4,3,2,1]
      
       # 리스트 원소 뒤집기
       a.reverse()
       print("원소 뒤집기 : " ,a) // 원소 뒤집기 : [1,2,3,4]
      
       # 특정 인덱스에 데이터 추가
       a.insert(2,3)
       print("인덱스 2에 3 추가 : " ,a) // 인덱스 2에 3 추가 : [1,2,3,3,4]
      
       # 특정 값인 데이터 개수 세기
       print("값이 3인 데이터 개수 : " , a.count(3)) // 값이 3인 데이터 개수 : 2
      
       # 특정 값 데이터 삭제
       a.remove(1)
       print("값이 1인 데이터 삭제 : " ,a) // 값이 1인 데이터 삭제 : [2,3,3,4]
      
       # 맨 마지막 요소 삭제 
       a.pop() 
       print(a) // [2,3,3]
      
       //-> insert() 와 apppend(),remove() 눈여겨 두기
      
       # 특정 값을 가지는 원소를 제거하는 방법
       a = [1,2,3,4,5,5,5]
       remove_set = {3,5}
      
       result = [i for i in a if i not in remove_set]
       print(result) // [1,2,4]
  5. 튜플

    1. 튜플의 특징

      • 리스트는 []으로 감싸지만 튜플은 () 로 둘러싼다

      • 리스트는 값 생성,삭제,수정이 가능하지만 튜플은 불가능

        t1 = ()
        t2 = (1,) # 1개의 요소만 가질떄도 ,를 넣어야됨
        t3 = (1, 2, 3)
        t4 = 1, 2, 3
        t5 = ('a', 'b', ('ab', 'cd'))
    2. 튜플 다루기

       a = (1,2,'a','b')
      
       # 인덱싱하기
       print(a[0]) # 1 출력
       print(a[3]) # 'b' 출력
      
       # 슬라이싱하기
       print(a[1:]) # (2,'a','b')
      
       # 튜플 더하기
       a = (1,2,'a','b')
       b = (3,4)
       c = a + b
       print(c) # (1,2,'a','b',3,4)
      
       # 튜플 곱하기
       t1 = (3,4)
       t2 = t1 * 3
       print(t2) # (3, 4, 3, 4, 3, 4)
      
       # 튜플 길이 구하기 
       t1 = (1, 2, 'a', 'b')
       print(len(t1)) # 4
      
  6. 딕셔너리(사전)

    1. 사전(딕셔너리) 키와 값을 쌍을 데이터로 가지는 자료형

       # 기본구조 {key1: value1, key2: value2, ...}
      
       dic = {'name':'pey','phone':'01012345678','birth':'0101'}
      
       # 아래와 같은 구조의 형식
       # key      value
       # name    pey
       # phone    01199993323
       # birth    1118
      
       a = { 'a': [1,2,3]} # 리스트도 추가가능
    2. 딕셔너리 추가 및 삭제

       # 추가
       a = {1: 'a'}
       a[2] = 'b'
       a['name'] = 'pey'
       a[3] = [1,2,3]
      
       print(a) # {1: 'a', 2: 'b', 'name': 'pey', 3: [1, 2, 3]}
      
       # 삭제
      
       del a[1] # del 함수를 사용하여 삭제
       print(a) # {2: 'b', 'name': 'pey', 3: [1, 2, 3]}
    3. 딕셔너리 사용방법

       # key 사용해 value 얻기
      
       a = { 1: 'a', 2: 'b'}
       print(a[1]) # 'a'
       print(a[2]) # 'b'
      
       a = {'a':1, 'b':2}
       print(a['a']) # 1
       print(a['b']) # 2
      
       dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
       print(dic['name']) # 'pey'
       print(dic['phone']) # 'phone'
       print(a['birth']) # '1118'
    4. 주의 사항

       # key값은 고유한 값이므로 중복되는 key값 설정시 하나를 제외한 나머지는 무시
       a = { 1 : 'a', 1: 'b'}
       print(a) # {1:'b'}
      
       # key값에는 리스트를 쓸수 없다 
       a = {[1,2] : 'hi'}
       # 오류 발생 
      
       # value는 상관없이 설정이 가능하다 
      
    5. 딕셔너리(사전) 관련 함수

       data = dict()
       data['사과'] = 'Apple'
       data['바나나'] = 'Banana'
       data['코코넛'] = 'Coconut'
      
       # 키 값만 담은 리스트
       key_list = data.keys()
       # 값 데이터만 담은 리스트
       value_list = data.values()
      
       print(key_list) # dict_keys(['사과','바나나','코코넛'])
       print(value_list) # dict_values(['Apple','Banana','Coconut'])
      
       for key in key_list:
           print(data[key])
      
       # Apple
       # Banana
       # Coconut
      
       # dict_keys 객체를 리스트로 반환할려면
       list(data.keys())
       # ['사과','바나나','코코넛']
      
       # key,value 쌍으로 얻기
       data.items()
       # dict_items([('사과', 'Apple'), ('바나나', 'Banana'), ('코코넛', 'Coconut')])
      
       # 모두 지우기
       data.clear()
       # {}
      
       # key로 value 얻기
      
       data.get('사과') # 'Apple'
  7. 집합

    1. 집합을 처리하기 위한 집합 자료형

      • 중복을 허용하지 않는다

      • 순서가 없다

        # 집합 자료 초기화 방법 1
        data = set([1,1,2,3,4,4,5,])
        print(data) # {1,2,3,4,5}
        
        # 집합 자료형 초기화 방법 2
        data = {1,1,2,3,4,4,5}
        print(data) # {1,2,3,4,5}
    2. 집합 자료형의 연산

       a = set([1,2,3,4,5])
       b = set([3,4,5,6,7])
      
       # 합집합
       print(a | b) # {1,2,3,4,5,6,7}
       # 교집합 
       print(a & b) # {3,4,5}
       # 차집합
       print(a - b) # {1,2}
      
       # 값 추가 (add)
       data = set([1,2,3])
       data.add(4)
       print(data) # {1,2,3,4}
      
       # 여러값 추가하기 (updata)
       data.update([5,6])
       print(data) # {1,2,3,4,5,6}
      
       # 특정 값 제거하기
       data.remove(3)
       print(data) # {1,2,4,5,6}
  8. 제어문

    1. if (조건 판별식)

       # 기본구조 
       # if 조건문:
       #    수행할 문장1
       #    수행할 문장2
       #    ...
       # else:
       #   수행할 문장A
       #   수행할 문장B
       #    ...
      
       # 사용법
       money = 2000
       card = True
       if money >= 3000 or card:
          print("택시를 타고 가라")
       else:
          print("걸어가라")
      
       # elif 사용법
      
       pocket = ['paper', 'cellphone']
       card = True
       if 'money' in pocket:
            print("택시를 타고가라")
       elif card: 
            print("택시를 타고가라")
       else:
            print("걸어가라")
    2. while (반복문)

       # 기본구조
       while <조건문>:
           <수행할 문장1>
           <수행할 문장2>
           <수행할 문장3>
           ...
      
       # 1 ~ 9까지 더하는 로직
       i = 1 
       result = 0
       while i <= 9: 
           reulst += i
           i += 1
      
       print(result) # 45
      
       # 홀수만 더하고 싶을때 
      
       while i <= 9:
           if i % 2 == 1:
               result += i
           i += 1
      
       print(result) # 25
    3. for (반복문)

       # 기본구조
       for 변수 in 리스트(또는 튜플, 문자열):
           수행할 문장1
           수행할 문장2
           ...
      
       test_list = ['one', 'two', 'three'] 
       for i in test_list: 
           print(i)
      
       # one 
       # two 
       # three
      
       # 복잡한 for 로직( 합격,불합격 로직)
       marks = [90, 25, 67, 45, 80]
      
       number = 0 
       for mark in marks: 
           number = number +1 
           if mark >= 60: 
               print("%d번 학생은 합격입니다." % number)
           else: 
               print("%d번 학생은 불합격입니다." % number)
      
       # for와 함께 쓰는 range 함수
       # range는 범위를 포함하는 객체를 생성해줌 range(10) => 0부터 10미만 
       marks = [90, 25, 67, 45, 80]
       for number in range(len(marks)):
           if marks[number] < 60: 
               continue
           print("%d번 학생 축하합니다. 합격입니다." % (number+1))
  9. 함수 및 입출력

    1. 함수

       # 기본구조
       def 함수명(매개변수):
           <수행할 문장1>
           <수행할 문장2>
           ...
      
       # 더하기 함수
       def add(a, b): 
           return a + b
       a = 3
       b = 4
       c = add(a,b)
       print(c) # 7
      
       # 함수 밖에서 변수 데이터를 변경하는 경우 global 키워드
      
       a = 0
      
       def func():
           global a 
           a += 1
      
       for i in range(10):
               func()
      
       print(a)
    2. 입출력

       # 입력
       a = input('Life is too short, you need python')
       print(a) # 'Life is too short, you need python'
      
       # 입력을 위한 전형적인 소스코드 
       # 데이터의 개수 입력
       n = int(input())
       #각 데이터를 공백으로 구분하여 입력
       data = list(map(int, input().split()))
      
       data.sort(reverse = True)
       print(data)
      
       # 5
       # 65 90 75 34 99
       # [99, 90, 75, 65, 34]
      
       # 파일 입출력
      
       # sys라이브러리
      
       import sys
       data = sys.stdin.readline().rstrip() 
       print(data)
      
       # Hello World -> 입력
       # Hello World -> 출력
반응형

'프로그래밍 > Python' 카테고리의 다른 글

Python의 기본과 설치과정  (0) 2018.05.20