Presentation is loading. Please wait.

Presentation is loading. Please wait.

Spring, 2019 School of CSE Pusan National University

Similar presentations


Presentation on theme: "Spring, 2019 School of CSE Pusan National University"— Presentation transcript:

1 Spring, 2019 School of CSE Pusan National University
Python의 자료형(1) Spring, 2019 School of CSE Pusan National University

2 학습목표 학습목표 자료와 자료형 자료의 크기와 형태 Python의 자료형 문자열과 리스트 for 문 튜플 사전

3 자료와 자료형 자료와 자료형(복습) 자료형의 분류 자료와 자료형
컴퓨터가 저장하고 다룰 수 있는 대상을 모두 자료(data)라고 함 자료의 형태를 분류해 놓을 것을 자료형(type)이라고 함 자료형의 분류 정수 0과 문자열 “0"의 유형은 분명 다르다. 정수 0과 문자열 “0"의 크기가 같을까? 다르다면 어느 것이 더 클까? 정수 0과 문자열 "0"은 어느 것이 더 클까? 일반적으로 자료형은 자료의 크기와 저장형태에 따라서 다시 분류할 수 있음

4 자료의 크기와 형태 자료와 자료형에 관한 오해 자료의 형태 자료의 크기와 형태
0의 크기와 1의 크기는 0 < 1이지만 자료형의 크기는 같음 0 < 1이지만 “0" > “1"임(ASCII 순서) “0" > “1"이지만 자료형의 크기는 "One"보다 “Zero" 가 더 큼 cf. 하드디스크에 3GB 파일을 저장해도 하드디스크의 무게는 변화 없음 자료의 형태 0이라는 자료와 “0"이라는 자료의 형태는 분명 다름 0은 더 이상 나눌 정보가 없지만 “0"은 그렇지 않음 나눌 수 없는 타입을 스칼라 타입(scalar type; atomic type)이라고 하고 나눌 수 있는 타입을 구조 타입(structured type)이라고 함

5 Phython의 자료형 스칼라 타입 구조 타입 Phython 의 자료형
정수형: int, long, character, Unicode character 부동소수점수형: float 논리형: bool 문자열형: str 주의 1: character와 Unicode character는 내부적으로만 사용되며 값을 사용할 때는 모두 문자열로 간주함 주의 2: 문자열형은 구조 타입으로 간주하기도 함 구조 타입 리스트(list) 튜플(tuple; 순서쌍) 사전(dictionary) 클래스(class): 대부분의 다른 타입을 만들 수 있음

6 문자열 문자열 상수 s = "Hello" t = 'Hello' 첨자 연산 문자열 작은 따옴표나 큰 따옴표로 묶어 나타냄
아래 두 문자열은 같은 문자열임 s = "Hello" t = 'Hello' 첨자 연산 첨자 연산자 대괄호를 []를 이용하면 문자열의 일부를 꺼낼 수 있음 첫 번째 글자의 첨자는 0임(예: s[0]) 음수 첨자는 오른쪽 끝에서부터 셈 마지막 글자의 첨자는 -1임(예: s[-1]) 슬라이스 s[from:to]는 첨자 from부터 to 직전까지 문자열을 꺼냄

7 큰 문자열 여러 줄에 걸친 문자열 주요 확장열 큰 문자열 문자열 상수 중간에 줄바꿈문자를 사용하면 안 됨
줄바꿈문자를 사용하고 싶은 경우에는 따옴표 세 개를 연속하여 사용함 print """This a a very long string. It can take several lines of lines.""" cf. 확장열(\n)을 이용하여 여러 줄에 걸친 문자열을 나타낼 수도 있음 주요 확장열 \' Single-quote character (\" for double-quote) \\ Backslash character \a Bell character (경고음; alert) \b Backspace character \r Carriage return character (not the same as \n) \t Tab character

8 문자열 연산 대입 연산 불가 간단한 문자열 연산 슬라이스 연산 문자열 연산 문자열 내의 특정 문자를 바꾸는 것은 불가능함
s[0] = 'g'와 같은 대입 연산은 오류! 간단한 문자열 연산 문자열 길이: len(s) 문자열 연결: s + t 문자열 반복: s * 5 문자열 비교: ==, !=, <=, >=, <, > (코드 순으로 비교함) 슬라이스 연산 s[from:to] 형태에서 from이나 to 생략 가능 from이 생략되면 처음부터, to가 생략되면 끝까지 cf. s[:] == s

9 연습문제 영어 문자열을 읽어서 글자 a만 별표 *로 바꾸어 출력하는 프로그램을 작성해 보자. 연습문제
raw_input()을 사용하여 입력을 받을 것 while 루프를 사용할 것 공백을 출력하지 않는 방법을 이용할 것 첨자 연산과 길이 연산만 사용하고 다른 문자열 메소드는 사용하지 말 것

10 리스트 리스트란? 리스트 생성 empty = [] a = [1, 2, 3]
리스트(list)란 자료를 순서대로 나열한 것을 묶은 자료형 문자열의 내부에는 문자만 있지만 리스트에는 여러 형태의 자료가 모두 포함될 수 있음 리스트 생성 리스트 리터럴(literal)은 대괄호와 쉼표를 이용하여 생성함 empty = [] a = [1, 2, 3] hippo = ['Life', 'is', 'short'] 일정 간격의 리스트는 range를 이용하면 편리함 print range(1,10,2)

11 리스트 연산 선형 연산 리스트 변경 hippo = ['Life', 'is', 'short'] hippo[0] = 'Art'
문자열 연산과 같은 연산을 모두 포함하고 있음 길이(len), 연결(+), 반복(*), 슬라이스([:]), 첨자([]) 연산 등 리스트 변경 리스트는 문자열과 달리 원소를 변경할 수도 있음 hippo = ['Life', 'is', 'short'] hippo[0] = 'Art' 슬라이스를 이용하면 리스트 원소를 삭제할 수도, 추가할 수도 있음 hippo[0:1] = [] hippo[0:0] = ['Art', 'is', 'long', 'and', 'life'] print hippo

12 for 문 for 문의 용도 for 문을 이용한 계승 계산 prod = 1 for n in range(1,10+1):
range(a,b)는 [a, a+1, …, b-1]을 생성함 b가 제외된다는 사실에 주의할 것 for 문을 이용한 계승 계산 prod = 1 for n in range(1,10+1): prod = prod * n print prod


Download ppt "Spring, 2019 School of CSE Pusan National University"

Similar presentations


Ads by Google