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
- 이차원 리스트
[0]은 행, [2]는 열을 의미함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]은 kor_score를 [2]는 C를 의미함
print(midterm_score[0][2]) 20
-리스트에 메모리 저장
:안에 값 자체를 저장하는 구조가 아니라 그 값이 위치한 메모리 주소에 주소값을 저장
- 메모리 주소와 값의 차이
파이썬은 인터프리터(아나콘다)가 구동될 때, -5 ~ 256까지a = 1 b = 1 a is b a == b
정수값을 특정 메모리 주소에 저장-메모리 저장구조로 인한 리스트의 특징
- 실습
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[4팀/이제은] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.17 |
---|---|
[1팀/허서원] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.16 |
[1팀/한규림] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.16 |
[1팀/지다인] 2차시 파이썬 스터디- 자료형 (1) | 2023.03.16 |
[4팀/김민혜] 1차시 파이썬 스터디 - 입출력 (0) | 2023.03.16 |