공부일기/점프 투 파이썬

02. 파이썬 프로그래밍의 기초, 자료형

pipiiiiii 2024. 1. 2. 11:09

출 처 : 박응용, 『Do it! 점프 투 파이썬 - 전면 개정 2판』, 서울 : 이지스퍼블링(23.08.01.), 2장

 

02 - 1. 숫자형

  • 숫자형이란 숫자 형태로 이루어진 자료형 
  • 숫자형은 어떻게 만들고 사용할까?
    • 정수형 : 정수를 뜻하는 자료형 
    • 실수형 : 소수점이 포함된 숫자
    • 8진수와 16진수 
      - 8진수 : 숫자가 0o 또는 0O로 시작
      - 16진수 : 0x로 시작
  • 숫자형을 활용하기 위한 연산자
    • 사칙 연산 : 연산자를 사용해 사칙 연산을 수행한다. 
    • x의 y제곱을 나타내는 ** 연산자 : 사용했을 때 x의 y제곱 값을 리턴한다. 
    • 나눗셈 후 나머지를 리턴하는 % 연산자 : %는 나눗셈의 나머지 값을 리턴한다. 
    • 나눗셈 후 몫을 리턴하는 // 연산자 

02 - 2. 문자열 자료형

  • 문자열이란 문자, 단어 등으로 구성된 문자들의 집합을 말한다. 
  • 따옴표로 둘러싸여 있으면 모두 문자열이다. 
  • 문자열은 어떻게 만들고 사용할까? 
    • 큰따옴표로 양쪽 둘러싸기
    • 작은따옴표로 양쪽 둘러싸기
    • 큰따옴표 3개를 연속으로 써서 양쪽 둘러싸기
    • 작은따옴표 3개를 연속으로 써서 양쪽 둘러싸기 
  • 문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때 
    - 문자열 안에도 작은따옴표와 큰따옴표가 들어 있어야 할 경우가 있다.
    • 문자열에 작은따옴표 포함하기 
      - 큰따옴표 안에 들어 있는 작은따옴표는 문자열을 나타내기 위한 기호로 인식되지 않는다. 
    • 문자열에 큰따옴표 포함하기
    • 역슬래시를 사용해서 작은따옴표와 큰따옴표를 문자열에 포함하기
      - 역슬래시(\) 사용 시 기호의 의미가 아니라 '나' 자체를 뜻하게 된다. 
  • 여러 줄인 문자열을 변수에 대입하고 싶을 때
    - 여러 줄의 문자열을 출력할 때는 변수만 입력하면 적용이 안되므로 꼭 print()를 사용해야 한다.  
    • 줄을 바꾸기 위한 이스케이프 코드(프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합'을 의미한다.) \n 삽입하기
    • 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용하기  
  • 문자열 연산하기 
    - 문자열을 더하거나 곱할 수 있다. 
    • 문자열 더해서 연결하기
    • 문자열 곱하기 
      - 문자열은 곱하면 문자열을 반복한다
    • 문자열 곱하기 응용하기 
    • 문자열 길이 구하기 
      >>> a = "Life is too short"
      >>> len(a)
      17
      - 문자열의 길이에는 공백 문자도 포함한다.  

  • 문자열 인덱싱과 슬라이싱
    - 인덱싱이란 무엇인가를 '가리킨다' 
    - 슬라이싱이란 무엇인가를 '잘라 낸다'
    • 문자열 인덱싱 
      >>> a = "Life is too short, You need python"
      >>> a[3]
      'e'
      >>> a[0]
      'L'
      >>> a[12]
      's'
      - 파이썬은 0부터 숫자를 센다
      - 인덱싱은 문자열 안의 특정한 값을 뽑아내는 역할을 한다. 
    • 문자열 인덱싱 활용하기 
      >>> a = "Life is too short, You need python"
      >>> a[-1]
      'n'
      >>> a[-0]
      'L'
      - ' - '를 사용하면 뒤에서부터 세어 첫 번째가 되는 문자이다. 
      - ' 0 ' 과 ' -0 ' 똑같은 것이기 때문에 검색하면 똑같은 값을 보여 준다. 
    • 문자열 슬라이싱 
      >>> a = "Life is too short, You need python"
      >>> a[0:4]
      'Life'
      - 슬라이싱 기법으로 a [시작_번호:끝_번호]를 지정할 때 끝 번호에 해당하는 문자는 포함하지 않는다. 
    • 문자열을 슬라이싱하는 방법 
      >>> a = "Life is too short, You need python"
      >>> a[0:5]
      'Life '
      - 공백도 문자와 동일하게 취급한다.
      >>> a = "Life is too short, You need python"
      >>> a[5:7]
      'is'
      >>> a[12:17]
      'short'
      - 슬라이싱을 할 때 항상 시작 번호가 0일 필요는 없다. 
      >>> a = "Life is too short, You need python"
      >>> a[19:]
      'You need python'
      >>> a[:17]
      'Life is too short'
      >>> a[:]
      'Life is too short, You need python'
      - 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다. 
      - 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.  
      - 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지 뽑아낸다. 
      >>> a = "Life is too short, You need python"
      >>> a[19:-7]
      'You need'
      - ' - ' 기호를 사용할 수 있다. 
    • 슬라이싱으로 문자열 나누기 

  • 문자열 포매팅이란?
    - 문자열 안의 특정한 값을 바꿔야 할 경우 사용하는 것이다.
    - 문자열 안에 어떤 값을 삽입하는 방법이다. 

  • 문자열 포매팅 따라 하기
    • 숫자 바로 대입 
      - %d를 사용한다. 
      - %d는 '문자열 포맷 코드'다. 
    • 문자열 바로 대입 
      - 문자열을 넣기 위해서는 %s를 사용한다. 
    • 숫자 값을 나타내는 변수로 대입
    • 2개 이상의 값 넣기
      - 2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 쉼표로 구분하여 각각의 값을 넣어야 한다

  • 문자열 포맷 코드 ( 이미지 출처 : https://wikidocs.net/13#_17 )

    - %s 포맷 코드는 어떤 형태의 값이든 변환해 넣으 수 있다. 
    - %s를 사용하면 자동으로 % 뒤에 있는 값을 문자열로 바꾸어 대입한다.  
    - 포매팅 연산자 % d와 %를 같이 쓸 때는 %%로 쓴다. (ex)%d%%) 

  • 포맷 코드와 숫자 함께 사용하기
    • 정렬과 공백
      >>> "%10s" %'hi'
      '        hi'
      >>> "%-10s" %'hi'
      'hi        '
      - 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨둔다. 
      - 반대쪽인 왼쪽 정렬은 -10을 이용할 수 있다. 
    • 소수점 표현하기
      >>> "%0.4f" %3.42134234
      '3.4213'
      >>> "%10.4f" %3.42134234
      '    3.4213'
      - '.'은 소수점 포인트, 그 뒤의 나올 숫자의 개수를 말한다. 
      - 숫자 ' 0 '은 길이에 상관하지 않겠다는 의미이다. 
      - 소수점 포인트 앞의 숫자는 문자열의 전체 길이를 의미한다.
      - ' 0 '을 생략해 %. 4f처럼 사용하기도 한다.  

  • format 함수를 사용한 포매팅
    >>> "I eat {0} apples." .format(3)
    'I eat 3 apples.'
    >>> "I eat {0} apples." .format("five")
    'I eat five apples.'
    >>> number = 3
    >>> "I eat {0} apples." .format(number)
    'I eat 3 apples.'
    >>> number = 10
    >>> day = "three"
    >>> "I ate {0} apples. so I was sick for {1} days." .format(number, day)
    'I ate 10 apples. so I was sick for three days.'
    >>> "I ate {number} apples. so I was sick for {day} days." .format(number = 10, day = 3)
    'I ate 10 apples. so I was sick for 3 days.'
    >>> " I ate {0} apples. so I was sick for {day} days." .format(10, day = 3)
    ' I ate 10 apples. so I was sick for 3 days.'
    >>> "{0:<10}" .format('hi')
    'hi        '
    >>> "{0:>10}" .format('hi')
    '        hi'
    >>> "{0:A^10}" .format('hi')
    'AAAAhiAAAA'
    >>> y = 3.42134234
    >>> "{0:0.4f}" .format(y)
    '3.4213'
    >>> "{0:10.4f}" .format(y)
    '    3.4213'
    >>> "{{ and }}" .format()
    '{ and }'
    • 숫자 바로 대입하기 
    • 문자열 바로 대입하기
    • 숫자 값을 가진 변수로 대입하기
    • 2개 이상의 값 넣기
      - 2개 이상의 값을 넣을 경우, 문자열의 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다. 
    • 이름으로 넣기
    • 인덱스와 이름을 혼용해서 넣기
    • 왼쪽 정렬
    • 오른쪽 정렬
    • 가운데 정렬
    • 공백 채우기
    • 소수점 표현하기
    • { 또는 } 문자 표현하기

  • f 문자열 포매팅 
    - 파이썬 3.6 버전부터는 f 문자열 포매팅 기능을 사용할 수 있다. 
    - 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅이 가능하다. 
    - f 문자열 포매팅은 표현식(중괄호 안의 변수를 계산식과 함께 사용하는 것)을 지원한다.  

  • 문자열 관련 함수들
    - 문자열 자료형은 자체적으로 함수를 가지고 있다. ('문자열 내장 함수'라고도 한다)
    - 문자열 변수 이름 뒤에 '.'을 붙인 후 함수 이름을 써보면 된다. 
    • 문자 개수 세기 : count
    • 위치 알려 주기 1 : find
      - 찾는 문자나 문자열이 존재하지 않는다면 ' -1 '을 반환한다. 
    • 위치 알려 주기 2 : index
      - 찾는 문자나 문자열이 존재하지 않는다면 오류가 발생한다. 
    • 문자열 삽입 : join
    • 소문자를 대문자로 바꾸기 : upper
    • 대문자를 소문자로 바꾸기 : lower
    • 왼쪽 공백 지우기 : lstrip
      - 가장 왼쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다.
      - l은 left를 의미한다. 
    • 오른쪽 공백 지우기 : rstrip
      - 가장 오른쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다. 
      - r은 right를 의미한다. 
    • 양쪽 공백 지우기 : strip
      - 양쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다. 
    • 문자열 바꾸기 : replace 
      - 문자열 안의 특정한 값을 다른 값으로 치환해 준다. 
      - replace(바뀔_문자열, 바꿀_문자열)
    • 문자열 나누기 : split
      - 괄호 안에 아무 값도 넣지 않으면 공백을 기준으로 문자열을 나누어 준다. 
      - 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 

 

02 - 3. 리스트 자료형

  • 리스트는 어떻게 만들고 사용할까?
    - 리스트를 만들 때는 [대괄호]로 감싸 주고 각 요솟값은 쉼표로 구분한다. 
    - 리스트 안에는 어떠한 자료형도 포함된다. 

  •  리스트의 인덱싱와 슬라이싱
    - 리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.
    • 리스트의 인덱싱
    • 리스트의 슬라이싱

  • 리스트 연산하기
    • 리스트 더하기
      - 더하기는 2개의 리스트를 합치는 기능을 한다.
    • 리스트 반복하기
    • 리스트 길이 구하기
      - len은 문자열, 리스트 외에 앞으로 배울 튜플과 딕셔너리에도 사용할 수 있는 함수다. 

  • 리스트의 수정과 삭제
    - 리스트는 값을 수정하거나 삭제할 수 있다. 
    • 리스트의 값 수정하기 
    • del(delete의 약자다) 함수를 사용해 리스트 요소 삭제하기
      - del a[x]는 x번째 요솟값을 삭제한다. 
      - del 함수는 파이썬이 자체적으로 가지고 있는 삭제 함수이다. 

  • 리스트 관련 함수
    - 문자열과 마찬가지로 리스트 변수 이름 뒤에 '.'을 붙여 함수를 사용한다. 
    • 리스트에 요소 추가하기 : append
      - append의 사전적 의미는 '덧붙이다, 첨부하다' 이다. 
      - append(x)는 리스트의 맨 마지막에 x를 추가하는 함수다. 
    • 리스트 정렬 : sort
      - 순서대로 정렬해준다. 
    • 리스트 뒤집기 : reverse
      - 역순으로 뒤집어 준다.
      - 순서대로 정렬한 후 역순으로 뒤집는 것이 아니라 현재의 리스트 그대로 거꾸로 뒤집는다. 
    • 인덱스 반환 : index
      - 인덱스 값(위칫값)을 리턴한다.
      - 리스트에 존재하지 않으면 오류가 발생한다.
    • 리스트에 요소 삽입 : insert
      - 리스트의 a번째 위치에 b를 삽입하는 함수다.
    • 리스트 요소 제거 : remove
      - 리스트에서 첫 번째로 나오는 x를 삭제하는 함수다.
    • 리스트 요소 끄집어 내기 : pop
      - pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다. 
      - pop(x)는 x번째 요소를 리턴하고 그 요소는 삭제한다. 
    • 리스트에 포함된 요소 x의 개수 세기 : count
      - x가 몇 개 있는지 조사하여 그 개수를 리턴하는 함수다.
    • 리스트 확정 : extend
      - extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다. 
      - a.extend(x)는 a + = x와 동일하다. 


02 - 4. 튜플 자료형

- 튜플은 (괄호)로 감싸준다.
 

  • 튜플은 어떻게 만들까?
    - 1개의 요소만을 가질 때는 요소 뒤에 쉼표를 붙여야 한다.
    - 소괄호를 생략해도 된다.
    - 튜플과 리스트의 가장 큰 차이는 요솟값을 변화시킬 수 있는지의 여부이다.
    - 리스트는 변화가 가능하고 튜플은 불가능하다. 

  • 튜플의 요솟값을 지우거나 변경하려고 하면 어떻게 될까?
    - 튜플의 요솟값은 한 번 정하면 지우거나 변경할 수 없다.

  • 튜플 다루기
    -  요솟값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일하다. 
    -  튜플은 요솟값을 변경할 수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수를 쓸 수 없다. 
    • 인덱싱하기
    • 슬라이싱하기
    • 튜플 더하기
    • 튜플 곱하기
    • 튜플 길이 구하기 

02 - 5. 딕셔너리 자료형

- 대응 관계를 나타내는 자료형으로 '딕셔너리' 또는 '연관 배열' 또는 '해서'라고 한다.

 

  • 딕셔너리란?
    - '사전'이라는 뜻이다.
    - key와 value를 한 쌍으로 가지는 자료형이다.
    - key를 통해 value를 얻는다. 
    - 딕셔너리는 순서가 없는 자료형이므로 인덱싱을 지원하지 않는다. 
  • 딕셔너리는 어떻게 만들까?
    - 딕셔너리는 {중괄호}로 감싸준다.
    - 문자열과 리스트도 넣을 수 있다. 
  • 딕셔너리 쌍 추가, 삭제하기
    • 딕셔너리 쌍 추가하기
    • 딕셔너리 요소 삭제하기

  • 딕셔너리를 사용하는 방법 
    • 딕셔너리에서 key를 사용해 value 얻기
      - 딕셔너리는 단 1가지 방법뿐이다.
      - key를 사용해서 value를 구하는 것이다.
    • 딕셔너리 만들 때 주의할 사항
      - 중복되는 key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다. 
      - key에 리스트를 쓸 수 없다.
      - 튜플은 key로 쓸 수 있다.
      - key가 변하는 값인지, 아닌지에 따라 사용이 가능한지, 불가능한지 정해진다. 

  • 딕셔너리 관련 함수
    • key 리스트 만들기 : keys
      - key만 모아 객체를 리턴한다.
      - 리스트로도 변환이 가능하다.  
    • value 리스트 만들기 : values
      - value만 얻고 싶으면 values 함수를 사용하면 된다.
      - values 함수를 호출하면 객체를 리턴한다. 
    • key, value 쌍 얻기 : items
      - key와 value의 쌍을 튜플로 묶은 값을 리턴한다. 
    • key, value 쌍 모두 지우기 : clear
      - 딕셔너리 안의 모든 요소를 삭제한다. 
    • key로 value 얻기 :  get
      - key에 대응되는 value를 리턴한다. 
      - 존재하지 않는 키로 값을 가지고 오려고 할 경우 a['nokey']는 오류를 발생시키고 a.get('nokey')는 none(거짓이라는 뜻이다)을 리턴한다. 
      - 찾으려는 key가 없을 경우, 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때는 get(x, 디폴트 값)을 사용하면 편리하다. 
    • 해당 key가 딕셔너리 안에 있는지 조사하기 : in

02 - 6. 집합 자료형

  • 집합 자료형은 어떻게 만들까?
    - set 키워드를 사용해 만들 수 있다. 
    - 비어 있는 집합 자료형은 s = set()으로 만들 수 있다. 
  • 집합 자료형의 특징 
    - 중복을 허용하지 않는다.
    - 순서가 없다.
    - 중복을 허용하지 않는 특징 때문에 중복을 제거하기 위한 필터로 종종 사용된다.
    - 순서가 없기 때문에 인덱싱을 통해 요솟값을 얻을 수 없다. 
    - set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후에 해야 한다. 

  • 교집합, 합집합, 차집합 구하기
    • 교집합 구하기 
      - ' & '를 사용하면 된다.
      - intersection 함수를 사용해도 된다. 
    • 합집합 구하기 
      - ' | '를 사용하면 된다.
      - union 함수를 사용해도 된다.
    • 차집합 구하기
      - ' - '를 사용하면 된다. 
      - difference 함수를 사용해도 된다. 

  • 집합 자료형 관련 함수
    • 값 1개 추가하기 : add
      - 이미 만들어진 set 자료형에 값을 1개만 추가할 수 있다.
    • 값 여러 개 추가하기 : update 
    • 특정 값 제거하기 : remove

 

02 - 7. 불 자료형

- 참과 거짓을 나타내는 자료형이다.

- True와 False는 파이썬의 예약어로 첫 문자를 항상 대문자로 작성해야 한다. 

  • 불 자료형은 어떻게 사용할까?
    - 조건문의 리턴값으로도 사용된다.
    - type(x)는 x의 자료형을 확인하는 파이썬의 내장 함수다. 

  • 자료형의 참과 거짓
    - 자료형의 참과 거짓을 구분하는 기준은 아래와 같다.  ( 이미지 출처 : https://wikidocs.net/17 )

    - 값이 비어 있으면 거짓이 되고 비어 있지 않으면 참이 된다. 
    - 숫자에서는 값이 ' 0 '일 때 거짓이 된다.
    - 'none'은 거짓을 뜻한다. 

  • 불 연산
    - bool 함수를 사용하면 자료형의 참과 거짓을 보다 정확하게 식별할 수 있다. 

 

02 - 8. 자료형의 값을 저장하는 공간, 변수

  • 변수는 어떻게 만들까?
    - 변수를 만들 때는 =(assignment) 기호를 사용한다. 
  • 변수란? 
    - 객체를 가리키는 것
    - 객체란 우리가 지금까지 보아 온 자료형의 데이터(값)와 같은 것을 의미한다. 

  • 리스트를 복사하고자 할 때 
    • [:] 이용하기 
    • copy 모듈 이용하기 

  • 변수를 만드는 여러 가지 방법 
    - 튜플과 리스트를 이용할 수 있다.
    - 여러 개의 변수에 같은 값을 대입할 수도 있다. 

 

02장 되새김 문제

>>> #문제풀어보기
>>> ## 1번 평균 점수 구하기
>>> (80+75+55)/3
70.0

>>> ## 2번 홀수, 짝수 판별하기
>>> 13 // 2
6
>>> 13 % 2
1
>>> ### 2번 해석 13 나누기 2 했을 때 나머지가 1로 남았기 때문에 홀수다.

>>> ## 3번 주민등록번호 나누기
>>> pin = '881120-1068234'
>>> yyyymmdd = pin[:7]
>>> num = pin[7:]
>>> print(yyyymmdd)
881120-
>>> print(num)
1068234
>>> ### yyyymmdd를 슬라이싱할 때 '-'가 같이 나오게 슬라이싱해 다시 해봤다.
>>> yyyymmdd = pin [:6]
>>> print(yyyymmdd)
881120

>>> ## 4번 주민등록번호 인덱싱
>>> pin = '881120-1068234'
>>> print(8)
8
>>> print(pin[8])
0
>>> print(pin[7])
1

>>> ## 5번 문자열 바꾸기
>>> a = 'a:b:c:d'
>>> b = a.replace(':', '#')
>>> print(b)
a#b#c#d

>>> ## 6번 리스트 역순 정렬하기
>>> a = [1, 3, 5, 4, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
>>> a.reverse()
>>> a
[5, 4, 3, 2, 1]
>>> print(a)
[5, 4, 3, 2, 1]

>>> ## 7번 리스트를 문자열로 만들기
>>> a = ['Life', 'is', 'too', 'short']
>>> result = list(a)
>>> print(result)
['Life', 'is', 'too', 'short']
>>> ### 리스트를 만든다고 잘 못 이해해 다시 해봤다. 
>>> a = ['Life', 'is', 'too', 'short']
>>> result = '' .join(a)
>>> print(result)
Lifeistooshort
>>> ### 띄어쓰기가 안돼서 다시 해봤다.
>>> a = ['Life', 'is', 'too', 'short']
>>> result = ' ' .join(a)
>>> print(result)
Life is too short

>>> ## 8번 튜플 더하기
>>> a = (1, 2, 3)
>>> a = + (4,)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for unary +: 'tuple'
>>> ### 더하는 방법을 제대로 이해하지 못해 오류가 나 다시 해봤다.
>>> a = a + (4,)
>>> print(a)
(1, 2, 3, 4)

>>> ## 9번 딕셔너리의 키
>>> a = dict()
>>> a
{}
>>> ### 3번. 이유는 [1]이 리스트라서 변형이 가능하기 때문에 딕셔너리에서는 사용이 불가하다.

>>> ## 10번 딕셔너리 값 추출하기
>>> a = {'A' : 90, 'B' : 80, 'C' : 70}
>>> result = a.pop('B')
>>> print(a)
{'A': 90, 'C': 70}
>>> print(result)
80

>>> ## 11번 리스트에서 중복 제거하기
>>> a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set(a)
>>> b = list(a)
>>> print(b)
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> ### list로 변형했는데도 불구하고 같은 값이 나와 다시 해봤다. 
>>> a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set(a)
>>> a
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set(a)
>>> aset = b
>>> b
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set('a')
>>> a
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set[a]
>>> a
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aSet = set(a)
>>> a
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> ### 아무리 해도 안돼서 작성 방법이 잘못된 줄 알고 다른 방식으로 해봤다.
>>> aset = set([a])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> aset = set[(a)]
>>> print(a)
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set(a)
>>> print(a)
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aset = set.a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'set' has no attribute 'a'
>>> aset = a.set
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'set'
>>> ### 검색 및 도전을 해봐도 알 수 없어 정답을 봤다.
>>> aset = set(a)
>>> b = list(aset)
>>> print(b)
[1, 2, 3, 4, 5]
>>> print(b)
[1, 2, 3, 4, 5]
>>> #### aset에 a를 set로 변환하고, 변환한 aset 값을 b에 list로 넣은 후 b를 출력해야 했다. 

>>> ## 12번 파이썬 변수
>>> a = b = [1, 2, 3]
>>> a[1] = 4
>>> print(b)
[1, 4, 3]
>>> ### 바뀌는 이유는 a와 b가 변수를 공통으로 사용하기 때문에 a에서 변경 시 b에도 반영이 된다.

 

< Python 후기>

- 2장은 금방 익힐 줄 알았는데 내가 너무 쉽게 생각했나 보다. 

책을 읽고, 예제를 다 따라 하고 정리까지 하니 시간이 엄청 빨리 지나갔다. 

그래도 반복하면서 공부하니 머릿속에 더 잘 남고, 책만 봤을 때보다 실제로 했을 때 더 이해가 잘 됐다. 

이제 3장 해야지 

'공부일기 > 점프 투 파이썬' 카테고리의 다른 글

4  (0) 2024.01.07
03. 프로그램의 구조를 쌓는다! 제어문  (0) 2024.01.02
01. 파이썬이란 무엇인가?  (1) 2023.12.26