ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 04일차 수업 정리_삼항연산자, 컬렉션(list, tuple, set, dict)
    Python 2024. 1. 29. 23:26

    - 03일차 복습

    - 삼항 연산자

    - 컬렉션

    - list 

    - tuple

    - set

    - dict

    - 컬렉션 차이점 정리

    - 비어있는 컬렉션 만들기 


     

    - 03일차 복습

     

    input() 입력함수는 사용자(키보드)로부터 입력받기 위한 함수 -> 컴퓨터한테 보내주는 것

    ** 무조건 str 자료형으로 저장된다. 다른 자료형으로 입력하고자 하면 형변환 필수

    ex) int(input(" "))

     

    이스케이프 문자는 문자열 안에서 특수한 기능 문자. 

    \" \' \\ \n \t (tap키)
    줄바꿈 들여쓰기

     

    형식을 갖춘 문자열

    % 연산자 int float str bool
    "%d" %d %f %s %s
    %값 %10 %3.14 %"안녕" %True

     

    str.format() f-string()
    "{} {}".format(값1, 값2) f"{값, 변수명}"
    번호를 부여, 형식 지정, 순서 지정 가능 자동으로 변수에 저장된 값을 가져옴

     

    연산자의 우선순위

     

    최우선 연산자 [], ()
    단항 연산자 + (양수), - (음수)
    산술 연산자 +, -, *, /, %(나머지 연산자), //(몫 연산자), **
    쉬프트 연산자 >>, << (이해못함, 자주 안쓴데)
    관계 연산자 >, <, <=, >=, ==, != (질문, ~~?)
    논리 연산자  
    삼항 연산자  
    대입 연산자 =

     

    복합관계 대입 연산자  +=, -=, *=  ( n += 5 => n = n + 5)

     


    - 삼항 연산자

    [ 참일 시 실행 ] if [ 조건문 ] else [ 거짓 시 실행 ] 

     

    조건문 자리에는 논리, 관계 연산자 사용 가능

    삼항 연산자는 조건문부터 실행, 조건문을 읽고 참일 시 앞, 거짓일 시 뒤를 출력

     

    <실습> # 정수 2개 입력받고, 관계 and 삼항 연산자를 이용하여 두 수의 차이를 절대값으로 출력

    # 쓰앵님 답
    
    num1 = int(input("첫번째 정수 입력 : "))
    num2 = int(input("두번째 정수 입력 : "))
    
    print(num1 > num2 )
    
    result = num1 - num2 if num1 > num2 else num2 - num1
    print(f"{num1}과 {num2}의 차이는 {result}입니다.")

     


    - 컬렉션

    컬렉션이란 여러개의 값을 하나 안에 넣어 묶어 사용 가능한 자료형

    list 리스트 tuple 튜플 set 세트 dict 딕셔너리
    [ ] ( ) { } {key:value}

     


    - list 

    [ 1, "문자열", True ]

    시퀀스 자료형 (인덱스 번호 사용 가능)

    대괄호로 묶고 , 콤마로 값을 구분

    중복값/모든 자료형 허용, 추가/수정/삭제 언제나 가능 (추후 method 공부할 때 더 자세히)

     

    리스트의 in 연산자, not in 연산자

    # (얘네도 물어봐주는 거임 관계 연산자처럼)
    print( 1 in li2) # 1 이 li2 안에 있니????
    print( False in li2) # False 라는게 li2 안에 있니????
    print(100 not in li2) # 100 이 li2 안에 없니???

    논리로 대답

     

    2차원 리스트 (리스트 안에 리스트)

      #    0  1  2         3          4   시퀀스자료형 인덱스 번호
    li3 = [1, 2, 3, ['1', '2', '3'], [4]]
                    # 0    1    2
    
    print(li3[3], type(li3[3]))
    print(li3[3][1], type(li3[3][1]))

     


    - tuple

    ( 1, "문자열", True ) 

    시퀀스 자료형 (인덱스 번호 사용 가능)

    소괄호로 묶고 , 콤마로 값을 구분

    중복값/모든 자료형 허용, 생성 후 추가/수정/삭제 불가능

    =>읽기 전용 리스트 라고도 불림

     

    튜플의 특징 - 패킹과 언패킹

    # Tuple Packing(패킹)  : 여러가지 데이터를 튜플로 묶는 것을 튜플 패킹
    tu2 = 1, 2, 3
    print(tu2, type(tu2))
    tu3 = (4,) #튜플의 요소가 1개 일때는 반드시 뒤에 , 표시 
    print(tu3, type(tu3))
    
    # Tuple unPacking(언패킹) : 튜플의 각 요소를 여러개의 변수에 할당
    num1, num2, num3 = tu2
    print(num1, type(num1))
    print(num2, type(num2))
    print(num3, type(num3))

     

    튜플의 in 연산자, not in 연산자

    # in 연산자, not in 연산자
    # 찾을 값 in 리스트, 튜플...
    print(1 in tu2)
    print("안" in "안녕하세요")

    list와 같음, 논리로 대답

     

    튜플의 시퀀스 연산자 +, *

    print(tu1 + tu3, type(tu1 +tu3))
    print((1,2,3) + (4,5), type((1,2,3) + (4,5)))
    
    print(tu2 * 2)
    print("안녕"*3)

     

    튜플의 len()

    파이썬에서 유용하게 쓰이는 함수**

    해당 요소의 길이/갯수를 알려주는 함수

    li1 = [1, 2, 3]
    tu4 = (4, 5, 6, 7)
    print(len(li1))
    print(len(tu4))

    3

    4

     


    - set

    { 1, "2", 0.1 }

    비시퀀스 자료형 (인덱스 번호 x)

    중괄호로 묶고 , 콤마로 값을 구분

    중복값/순서 X, 모든 자료형 허용

    =>(list의)중복값을 없앨 때 많이 사용

    se1 = set(li1) # set() : set로 형변환하는 함수
    print(se1, type(se1)) #리스트를 세트로 형변환하면서 중복값 제거 
    
    li1 = list(se1) # 다시 리스트로 변형 가능// list() : 리스트로 형변환하는 함수
    print(li1, type(li1))
    
    tu1 = tuple(li1) #tuple() : 튜플로 형변환하는 함수
    print(tu1, type(tu1))

     

     


    - dict

    {키1 : 값1, 키2 : 값2} 

    비시퀀스 자료형 (인덱스 번호 x)

    중괄호로 묶고 / 딕셔너리명[key]로 value  값 조회 가능

    중복값 key X / value O, 모든 자료형 허용

    =>딕셔너리 안에는 모든 컬렉션 포함 가능

     

    key 값과 value값을 각각 묶거나 한 세트씩 출력 가능

    print(di2.keys(), type(di2.keys())) #key, 값만 묶어놓을 수 있음
    print(di2.values(), type(di2.values())) #value, 값만 묶어놓을 수 있음
    print(di2.items(), type(di2.items()))  # key와 value를 한쌍의 튜플로 묶어버림 ==> 튜플이 두개나옴

     


    - 컬렉션 정리

      list 리스트 tuple 튜플 set 세트 dict 딕셔너리
    ex [1, 2, 3, "문", True] (1, 1.2, "문", True) {1,3,2,"문", 0.1} {키1 : 값1, 키2 : 값2} 
    시퀀스 자료형/
    인덱스 번호/
    중복값
    O / O / O O / O / O X / X / X X / X / key X value O
    추가/수정/삭제 O (언제나 가능) X (리스트와 반대)    
    기타 개개 특징 .list 안에 list
    작성 및 추출 O
    .패킹, 언패킹
    .값이 1개면 뒤에 , 필수
    .읽기 전용 리스트

    .순서 X
    .list, tuple로 형변환 O
    .tuple, list와 다름 
    .리스트 중복값 제거할 때
    많이 사용
    .모든 컬렉션 포함 가능

     

    인덱싱을 이용하면 해당 값의 자료형을 "추출" 가능 -> 자료 타입 그대로 출력

    슬라이싱을 이용하면 자르는 것이여서 타입별 출력 -> list, tuple

     


    - 비어있는 컬렉션 만들기 

    list 리스트 tuple 튜플 set 세트 dict 딕셔너리
    li1 = []
    li2 = list()
    tu1 = ()
    tu2 = tuple()
    set1 = set() di1 = {}
    di2 = dict()
    # 1. 리스트 => [] 이용하거나 list() 함수를 이용해서 비어있는 리스트 생성 가능
    li1 = []
    print(li1, type(li1))
    print(bool(li1), type(bool(li1))) # 비어 있어서 False로 나옴
    
    li2 = list()
    print(li2, type(li2))
    
    # 2. 튜플 => () 이용하거나 tuple() 함수를 이용해서 비어있는 튜플 생성 가능
    tu1 = () # 튜플은 안에 하나 넣을 떄 1, 이렇게 , 넣어줘야함
    print(tu1, type(tu1))
    print(bool(tu1), type(bool(tu1)))
    
    tu2 = tuple()
    print(tu2, type(tu2))
    
    # 3. 세트 => 비어있는 세트는 {}를 이용해 만들 수 없다. set() 함수로만 생성 가능
    set1 = set()
    print(set1, type(set1))
    
    # 4. 딕셔너리 => {} 이용하거나 dict()를 이용해서 생성 가능
    di1 = {}
    print(di1, type(di1))
    print(bool(di1), type(bool(di1)))
    
    di2 = dict()
    print(di2, type(di2))
    더보기

    [] <class 'list'> 

    False <class 'bool'> 

    [] <class 'list'> 

    () <class 'tuple'> 

    False <class 'bool'> 

    () <class 'tuple'> 

    set() <class 'set'> 

    {} <class 'dict'> 

    False <class 'bool'> 

    {} <class 'dict'>

     

     

    2024.01.29

연의 취업 도전기.