스터디/파이썬 스터디 강의자료

[2팀/김세연] 2차시 파이썬 스터디 - 자료형

알 수 없는 사용자 2023. 3. 16. 21:37

2차시_자료형_강의안.pdf
2.10MB
2차시_자료형_과제.pdf
0.33MB

2주차 자료형

참고자료: 데이터 과학을 위한 파이썬 프로그래밍, 점프 투 파이썬

변수와 메모리

  • 변수
    :프로그래밍에서는 어떤 값을 저장하는 장소
    :수학에서의 변수와 비슷하지만 약간 다름

  • 변수명다른 사람도 이해할 수 있는 변수명을 정하는 것이 좋음:특별한 의미가 있는 예약어 사용 안됨
    :대소문자 구분 주의 professer Professer
    :알파벳,숫자,밑줄(_) 사용, 한글X
  • 예시  
  • professer = 'Yerim Choi' a = 3 b = 7 month_price = 32460 birth_00 = 1126 birth_00 = '011126'
  • professer이라는 변수에 ‘yerim Choi’라는 문자데이터를 할당(변수에 데이터를 넣는 과정)함


데이터 타입

  • 숫자형
    :정수형(int) - 0, 17 ,-149
    :실수형(float) - 1.2, 3.49
    :8진수 - 0o177
    :16진수 - 0x8ff, 0xABC
    <<사칙연산, 연산자(제곱승), //연산자(몫), %연산자(나머지), 증가(감소) 연산>>

**연산자(제곱승)
//연산자(몫)와 %연산자(나머지)

  • 문자열 자료형
    :값이 문자로 출력되는 자료형으로 파이썬에서 보통 따옴표에 들어간 정보를 의미


    여러줄인 문자열을 변수에 대입하고 싶을 때 (줄 바꾸기, 탭 바꾸기)


    💡 문자열 연산하기, 문자열 인덱싱과 슬라이싱, 문자열 포매팅, 문자열 관련 함수


    -문자열 연산하기: 문자열은 더해서 연결하거나, 곱한만큼 출력할 수 있음

    -문자열 인덱싱: 인덱스는 가리킨다는 의미, 문자열에 번호를 매겨 특정한 값을 뽑아냄

    -문자열 슬라이싱: 잘라낸다는 의미로 단순히 한 문자가 아닌 단어를 뽑아냄

    -문자열 포매팅: 문자열 안의 특정한 값을 바꿔야 할 경우 사용함

    -문자열 관련 함수: 소문자<>대문자(upper,lower), 공백지우기(strip), 바꾸기(replace),나누기(split)

  • 불린 자료형
    :참은 True 컴퓨터에서 1, 거짓은 False 컴퓨터에서 2출력값은 True
    :논리형이라고도 하며, 참과 거짓을 표현할 때 사용

    print(1==1)
    출력값은 True

  • 코드
a = 1
b = 1
print(a, b)
11


a = 1.5
b = 3.5
print(a, b)
1.5 3.5


a = "ABC"
b = "101010"
print (a, b)
ABC 101010


a = True
b = False
print(a, b)
True False​

자료형 변환 및 자료형 확인

:다양한 타입의 자료형을 자유롭게 변환하여 사용해야함

ex) 사이트에 로그인할 때 숫자로 입력해야함, but 컴퓨터는 문자열로 인식하는 경우가 많음

float( )함수, int( )함수를 사용

 

- 정수형실수형 간 변환

float( )함수 (정수형 > 실수형)

a = 10
print(a)
10
# a변수에 정수 데이터 10 할당
# a가 정수형으로 출력

a = float(10)
print(a)
10.0

#a를 실수형으로 변환

 

int( )함수 (실수형 > 정수형)

a = int(10.7)
b = int(10.3)

print(a)
10

print(b)
10
#프로그래밍에서 소수점 이하는 내림

 

- 숫자형문자형 간 변환

a = '76.3'
b = float(a)

print(a)
76.3

print(b)
76.3

print (a + b)
Traceback (most recent call last):
File "<stdin>", line 1, in ‹module>
TypeError: can only concatenate str (nor "float") to str
a = float(a)
b = a
print(a + b)
152.6

a = str(a)
b = str(b)
print(a + b)   
76.376.3

-자료형 확인하기

type( )함수 사용

a = int(10.3)
type(a)
<class 'int’>

b = float(10.3)
type(b)
<class 'float'>

c = str(10.3)
type(c)
<class 'str’>

리스트

:가장 많이 사용하는 자료형으로 배열이라고 함 (프로그래밍> 배열, 파이썬 > 리스트)

ex)100명의 시험점수를 입력할때 변수를 100개 만드는 것은 번거로움

  • 개념
    -하나의 자료형만 저장하지 않고, 정수형,실수형 다양한 자료형 포함 가능
    -하나의 변수에 여러 값을 저장하는 자료형(=시퀀스 자료형: 여러 자료를 순서대로 넣음)

 

 

인덱싱과 슬라이싱
-인덱싱
:리스트에 저장되어 있는 값에 접근하기 위해 상대적인 주소를 사용하는 것


-슬라이싱
:리스트의 인덱스 기능을 사용하여 전체 리스트에서 일부를 잘라내어 사용하는 것

기본문법: 변수명[시작 인덱스:마지막 인덱스]

-리버스 인덱스
:인덱스를 첫번째 값이 아닌 마지막 값부터 시작하는 방식

cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
cities[-8:] 
['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']



-인덱스 범위를 넘어가는 슬라이싱
:슬라이싱을 할 때 인덱스의 첫 번째 값이나 마지막 값이 비어도 잘 작동함
:콜론을 넣거나 범위를 넘어가면 모든값 반환

cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
print(cities[:])       # cities 변수의 처음부터 끝까지
['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
print(cities[-50:50])   # 범위를 넘어갈 경우 자동으로 최대 범위를 지정

['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']

       -증가값 

cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
cities[::2]           #2칸 단위로
['서울', '인천', '대전', '울산']
cities[::-1]          #역으로슬라이싱
['수원', '울산', '광주', '대전', '대구', '인천', '부산', '서울']

기본문법: 변수명[시작 인덱스:마지막 인덱스:증가값]

 

리스트 추가, 삭제 및 재할당

 

-덧셈연산

colorl = ['red', 'blue', 'green']
color2 = ['orange', 'black', 'white']
print(colorl + color2)
['red', 'blue’, ’green', 'orange', 'black', 'white']

len(colorl)
3

total_color = colorl + color2
total_color
['red', 'blue’, ’green', 'orange', 'black', 'white']

 

-곱셈연산

color1 * 2
['red', 'blue', 'green', 'red', 'blue', 'green']

 

 

 

-in 연산 (포함 여부를 확인)

'blue' in color2
False
  •  
    color = ['red', 'blue', 'green']
    color[0] = 'orange'
    color
    ['orange', 'blue', 'green']
    
    del color[0]
    color
    ['blue', 'green']
    
  • # append() 함수 color = ['red', 'blue', 'green'] color.append('white') color ['red', 'blue', 'green', 'white'] # extend() 함수 color.extend(['black', 'purple']) color ['red', 'blue', 'green', 'white', 'black', 'purple'] # insert() 함수 color.insert(0, 'orange') color ['orange', 'red', 'blue', 'green', 'white', 'black', 'purple'] # remove() 함수 color.remove('red') color ['orange', 'blue', 'green', 'white', 'black', 'purple']
  • 패킹과 언패킹
    -패킹: 한 변수에 여러 개의 데이터를 할당
    -언패킹: 한 변수에 여러 개의 데이터가 들어있을 때, 그것을 각각의 변수로 반환

    >리스트의 값과 할당하려는 갯수가 다르면 에러 발생
t = [1, 2, 3]          # 1, 2, 3을 변수 t에 패킹
a, b, c = t            # t에 있는 값 1, 2, 3을 변수 a, b, c에 언패킹
print(t, a, b, c)
[1, 2, 3] 1 2 3
  • 이차원 리스트
    kor_score = [49,79,20,100,80]
    math_score = [43,59,85,30,90]
    eng_score = [49,79,48,60,100]
    midterm_score = [kor_score, math_score, eng_score]
    print(midterm_score)
     [[49,79,20,100,80], [43,59,85,30,90],[49,79,48,60,100]]
    
    [0]은 행, [2]는 열을 의미함
    [0]은 kor_score를 [2]는 C를 의미함
    print(midterm_score[0][2]) 20

    -리스트에 메모리 저장
    :안에 값 자체를 저장하는 구조가 아니라 그 값이 위치한 메모리 주소에 주소값을 저장

  • 메모리 주소와 값의 차이
    a = 1
    b = 1
    a is b
    a == b
    
    파이썬은 인터프리터(아나콘다)가 구동될 때, -5 ~ 256까지
    정수값을 특정 메모리 주소에 저장-메모리 저장구조로 인한 리스트의 특징

  • 실습