ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] 자료형과 관련함수 총 정리
    파이썬 2023. 8. 17. 21:44
    주석
    #한줄 주석
    
    """
    	여러 줄 주석
        
    """

    숫자형 자료형

     a = 123 #정수형
     
     a = 1.2
     a = 4.24E10
     a = 4.24e-10 # = 4.24*10^-10 실수형
     
     a = 0o177 //8진수
     a = 0x8ff //16진수

     

     

    연산자

    ** : 제곱 연산자 

    a**b # a^b

     

    % : 나머지 연산자

    3 % 7 = 3
    7 % 3 = 1

    // : 몫 연산자 ( 몫만 나옴 ) 

    / 연산자를 사용하는 경우, 실수 발생함.

    7 // 3 # 1
    5 // 2 # 2.5

    문자열 자료형

    • ""  : 대입하려는 문자열 안에 작은 따옴표가 포함되어 있는 경우 사용, 혹은 역슬래시를 표현하려는 따옴표 앞에 사용하면 출력가능
    • '' : 대입하려는 문자열 안에 큰 따옴표가 포함되어 있는 경우 사용, 혹은 역슬래시를 표현하려는 따옴표 앞에 사용하면 출력가능
    • """ """ : 여러 줄 문자열을 변수에 대입할때 사용
    • ''' ''' : 여러 줄 문자열을 변수에 대입할때 사용

     

    익스케이프 코드
    • \n : 문자열 내 줄바꿈
    • \t : 문자열 사이 탭
    • \\ : \를 그대로 표현할때 사용
    • \' : 작은 따옴표를 그대로 표현할때 사용
    • \" : 큰 따옴표를 그래로 표현할때 사용

     

    문자열 더하기, 문자열 곱하기
    head ="Python"
    tail =" is fun"
    
    print(head + tail)  #Python is fun 
    print(head * 2) #PythonPython

     

    문자열 길이 구하기 ,len() 
    a = "~ "
    len(a)

     

    인덱싱 슬라이싱
    • [시작_번호 : 끝_번호] : 시작~ 끝번호-1번째까지 추출한다. (슬라이싱)
    • 슬라이싱을 이용하면 문자열을 여러 갈래로 나눌 수 있음
    • 인덱싱이나 슬라이싱은 리스트, 튜플 처럼 순서가 있는 자료형에 사용할 수 있다. 딕셔너리나 집합과 같이 순서가 없는 경우 사용이 불가능하다.★
    a ="Life is too short, You need Python"
    
    print(a[0]) # L
    print(a[-1]) # n
    print(a[0:4]) # Life
    print(a[19: ]) # 19번째부터 끝까지 출력
    print(a[:17]) # 처음부터 16까지 출력
    print(a[:]) # 다출력

     

    문자열 포매팅

    %s 는 문자열 아니더라도 , 어떤 형태의 값이든 변환해 넣을 수 있다.

    "I eat %d apples." % 3 # I eat 3 apples.
    "I eat %s apples." % "five" # 문자열 넣을때
    number = 3
    "I eat %d apples." % number # 변수 넣을때 (정수 변수)
    
    day ="three"
    "I ate %d apples, so %s " % (number, day) #여러 개 넣을때

    문자열 포맷 코드

     

    포맷 코드와 숫자 함께 사용
    "%10s" % "hi" # _______hi  총10칸 공백두고 왼쪽정렬
    "%-10s" % 'hi' # hi_______ 총 10칸 공백두고 오른쪽 정렬
    
    "%0.4f" % 3.42134235 # 3.4213 소숫점 뒤 4번째자리 까지만 나타냄
    "%10.4f" % 3.42134235 # ____3.4213

     

    format 함수를 사용한 포매팅
    #인덱스 이용
    "I eat {0} apples".format(3)
    "I eat {0} apples".format("five")
    "I eat {0} apples".format(number)
    "I eat {0} apples {1} ".format(number,day)
    "{0:<10}".format("hi") #왼쪽 정렬하고 문자열 자릿수 10개 맞춰서
    "{0:>10}".format("hi") #오른쪽 정렬하고 ~
    "{0:^10}".format("hi") #가운데 정렬하고 ~
    "{0:=^10}".format("hi") #가운데 정렬하고 나머지 공백을 = 로 채운다.
    "{0:0.4f}".format(3.145678) # 소숫점 4번째까지 
    
    
    #이름으로 넣기
    "I eat {number} apples".format(number=10)

    f 문자열 포매팅

    name ='홍길동'
    age = 30
    f'나의 이름은 {name}입니다. 나이는 {age}입니다.'

    f문자열 포매팅에서도, 중괄호 안의 변수를 계산식과 함께 사용하거나, 딕셔너리를 이용하거나, 정렬, 공백채우기, 소숫점 표현 등 을 할수 있다.

     

    문자열 관련 함수

    문자열은 자체 값을 변경할 수 없는 immutable 자료형이기 때문에, 아래 설명할 문자열 관련 함수는 본래 변수의 값 자체를 변경하는 것이 아니라 수정한 값을 리턴하는 함수이다. 본래 변수의 값을 변경하려면 대입문을 사용해서 바꿔야한다.

     

    1. 문자 개수 세기 - count()

    a ="hobby"
    
    a.count('b') : 해당 문자열 내에 'b'가 몇개인지 세어줌

    2. 위치 알려주기 - find() , index()

    a ="hobby"
    
    a.find('b') : 해당 문자열 내에 'b'가 처음으로 나온 위치를 반환해줌, 찾는 문자열이 없다면 -1을 반환함

    3. 문자열 삽입 - join()

    ",".join('abcd') #a,b,c,d  문자열 각 문자 사이에 , 삽입

    4. 대문자로 바꾸기 - upper() 

    5. 소문자로 바꾸기 - lower()

    6. 문자열 바꾸기 - replace()

    a = "Life is too short"
    a.replace("Life", "Your leg")

    7. 문자열 나누기 - split()

    a = "Life is too short"
    a.split() # ['Life','is','too','short']
    
    # 괄호 안에 아무것도 넣지 않으면, 공백을 기준으로 문자열을 나누어 리스트에 하나씩 들어간다.
    # 괄호 안에 특정 값을 넣으면 특정값을 구분자로 문자열을 나누어 리스트에 하나씩 들어간다.

    리스트 자료형

    리스트명 = [요소1, 요소2, 요소3, ...]
    • 리스트 안에는 어떤 자료형도 다 포함할 수 있음.
    • 문자열처럼 인덱싱과 슬라이싱 가능함
    • 문자열처럼 +, * 를 사용해 더하거나, 반복할 수 있다. 그러나 이때 정수와 문자열을 서로 더할수는 없다. 자료형이 동일해야함.
    • 문자열 길이 구할 때 처럼 len()으로 길이를 구할 수 있다.
    • 참고로 len()은 문자열,리스트,튜플,딕셔너리에서 길이를 구할때 동일하게 사용된다.
    • del()함수로 리스트 요소를 삭제할 수 있다. ex) del a[1]

     

    리스트 관련 함수

    1. 리스트에 요소 추가 - append(x)

    맨 마지막에 x를 추가한다, 어떤 자료형도 다 추가 가능

    a = [1,2,3]
    a.append(4) # [1,2,3,4]
    a.append([1,2]) # [1,2,3,4,[1,2]]

    2. 리스트 정렬 - sort()

    오름차순, 알파벳 순서로 정렬함

    a = [1,4,3,2]
    b = ['a','b','c']
    a.sort() # [1,2,3,4]
    b.sort() # ['a','b','c']

    3. 리스트를 역순으로 반전 - reverse()

    a = [1,2,3]
    a.reverse() # [3,2,1]

    4. 위치 인덱스 반환 - index(x)

    x값이 있는 위치를 반환한다. 존재하지 않는경우 오류 발생

     

    5. 리스트에 요소 삽입 - insert(a,b)

    맨뒤에 삽입하는 append(x)와 다르게 원하는 a번째 위치에 b를 삽입한다.

     

    6. 리스트 요소 제거 - remove(x)

    첫번째로 나오는 x를 제거한다.

     

    7. 리스트 맨 마지막 요소 리턴하고 삭제 - pop()

     

    8. 리스트에 포함된 요소 x의 개수 세기 - count(x)

     

    9. 리스트 확장 - extend

    a += [4,5]라고 해도 extend 사용 효과와 동일함

    a = [1,2,3]
    b = [4,5]
    a.extend([4,5]) # a= [1,2,3,4,5]  
    a.extend(b)

     


    튜플 자료형

    • 리스트는 요솟값의 생성,삭제,수정이 가능하지만 튜플은 요솟값을 바꿀 수 없다.
    • 튜플은 t = (1,) 처럼 1 개의 요소만을 가질때에도 쉼표를 반드시 붙여야한다.
    • t = 1,2,3 처럼 소괄호를 생략해도 된다.
    • 튜플과 리스트의 가장 큰 차이는,  튜플은 요솟값을 바꿀 수 없다는 것이다. 즉 요솟값을 고정적으로 두고 싶은 상황일때 튜플을 사용하면된다.
    • 문자열, 리스트와 마찬가지로 인덱싱, 슬라이싱이 가능하다.

    딕셔너리 자료형

    {key1: value1, key2: value2, ...}
    • Key와 Value를 한 쌍으로 가지는 자료형으로,   이름 = "홍길동" , 생일 ="몇월 며칠" 처럼 대응관계를 나타낼 때 사용한다.
    • 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고, key를 통해 value를 얻는다. 마치 사전같은..
    • 딕셔너리는 인덱싱이나 슬라이싱으로 이해하면 안된다.  grade['pay'] 처럼 "딕셔너리이름[키값]"을 이용해서 원하는 value를 얻을 수 있다.
    • 딕셔너리 key는 중복으로 사용할 수 없다.
    딕셔너리 추가하기 딕셔너리 이름[key값] = value값

    a = {1: 'a'}라는 딕셔너리가 있을때

    a[2] = 'b'를 하게되면, key가 2이고 value가 b인 딕셔너리 쌍이 추가된다. (인덱싱으로 이해하면 안됨, key값으로 이해)

     

    딕셔너리의 키 값은 변하지않는 immutable한 성질을 가져야한다. ( 가능 : 문자열, 정수, 튜플 | 불가능: 리스트 )

    딕셔너리의 value 값은 변하는 값이든 변하지 않는 값이든 상관없다.

     

     

    딕셔너리 삭제하기 del 딕셔너리 이름[key값]

     

    딕셔너리 관련 함수

    1. key 값 모으기 - keys()

    a = {'name':'pey', 'phone':'010-999-999','birth':'11-14'}
    
    a.keys() # dict_keys 객체 리턴

    keys()는 딕셔너리 a의 Key값만 모아 dict_keys객체를 리턴하는 함수이다. 이때 dict_keys 객체는 리스트와 유사하지만 리스트는 아니다. ( 보통 반복문에 for k in a.keys(): 와 같이 사용된다. )

    dict_keys객체를 리스트화 시키고 싶다면 list(a.keys())로 변환하면 된다.★ 파이썬에선 이처럼 list변환이 매우 쉬움

     

    2. value 값 모으기 - values()

    딕셔너리이름.values() 로 사용하며, value값만 갖고 있는 dict_values 객체를 얻을 수 있다.

     

    3. key,value 쌍 얻기 - items()

    딕셔너리 이름.items()로 사용하며, key 와 value 쌍을 튜플로 묶은 값을 갖고 있는 dict_items 객체를 얻을 수 있다.

    dict_items = [('name','pey'), ('phone','010-999-999")]

    4. 딕셔너리 내부 모든 요소 삭제 - clear()

     

    5. key로 value 값 얻기 - get('key이름')

    만약 원하는 키 값이 딕셔너리 내부에 없는 경우 get('key이름','defult 값') 으로 사용하여 미리 정해 둔 디폴트값을 대신 가져오게 할 수도 있음.

    a = {'name':'pey', 'phone':'010-999-999','birth':'11-14'}
    a.get('name') #'pey'  
     			  # a['name'] 과 동일한 결과를 리턴함

     

    6. 해당 key가 딕셔너리 내부에 있는지 조사 - In

    True, False를 리턴한다.

    a = {'name':'pey', 'phone':'010-999-999','birth':'11-14'}
    
    'name' in a # a내부에 name인 키가 있는지?

    7. 리스트처럼 .pop을 사용할 수 있다.

    맨마지막 요소를 꺼내고 삭제하는 리스트와 달리, 딕셔너리에서는 괄호안에 키값을 넣어 원하는 항목만 꺼내서 삭제할 수 있다.


     

    집합 자료형

    s1 = set([1,2,3])
    s2 = set("Hello")
    
    s1 >> {1,2,3}
    s2 >> {'e','H','l','o'}
    • set()키워드를 사용해 만들 수 있다.
    • 집합 자료형은 중복을 허용하지 않는다.
    • 순서가 없다. -> 순서가 없기때문에 딕셔너리 처럼 인덱싱이나 슬라이싱이 불가능하다.
    • 인덱싱을 사용하려면 해당 집합을 list(s1) , tuple(s1)처럼 리스트나 튜플로 변환한 후에 사용해야 한다.
    • 교집합, 차집합, 합집합을 구할 때 사용한다.
    • 리스트내에 중복수를 없애고자할때 사용하며, 집합으로 변환한 후 다시 리스트로 변환하면 중복값 제거가 가능하다.
    s1 $ s2 #교집합
    s1 | s2 #합집합
    s1 - s2 #차집합

     

    집합 자료형 관련 함수

    값 1개 추가 하기 - add(추가할 값)

    s1 = set([1,2,3])
    s1.add(4)

    값 여러 개 추가하기 - update

    s1 = set([1,2,3])
    s1.update([4,5,6])

    특정 값 제거하기 - remove(지울 값)

     


    불 자료형

    Ture, False을 나타내느 자료형이다. 첫문자를 항상 대문자로 작성한다.

    a = True
    b = False

    문자열,리스트,튜플,딕셔너리 등 값이 비어있으면 거짓이다. 비어있지 않으면 참이다.

    a = [1,2,3,4]
    
    while a:   # a리스트 내에 값이 없어질때까지 true이므로 지속
    	print(a.pop())
    • 숫자가 0 이면 거짓이다.
    • None은 거짓이다.

    '파이썬' 카테고리의 다른 글

    [python] 클래스  (0) 2023.08.26
    [python] 입출력  (0) 2023.08.21
    [python] 함수  (0) 2023.08.21
    [python] 제어문  (0) 2023.08.20
    [python] 변수  (0) 2023.08.17

    댓글

lee-ding