• 검색 결과가 없습니다.

4.1. 자료형

N/A
N/A
Protected

Academic year: 2022

Share "4.1. 자료형"

Copied!
55
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

4장. 자료의 입력과 출력(자료형, 입출력)

4.1. 자료형

(2)

변수(variable)

프로그램에서 필요한 데이터를 임시적으로 저장할 수 있는 공간에 이름(식별자) 붙인것 식별자를 통해 자유롭게 데이터에 대해 읽기, 쓰기, 덮어쓰기 가능

(3)

변수(variable)

프로그램에서 필요한 데이터를 임시적으로 저장할 수 있는 공간에 이름(식별자) 붙인것 식별자를 통해 자유롭게 데이터에 대해 읽기, 쓰기, 덮어쓰기 가능

main memory

(4)

변수(variable)

메모리 공간 일부 프로그램에서 필요한 데이터를 임시적으로 저장할 수 있는 공간에 이름(식별자) 붙인것

식별자를 통해 자유롭게 데이터에 대해 읽기, 쓰기, 덮어쓰기 가능

main memory

(5)

변수(variable)

메모리 공간 일부

메모리 일부에 저장 공간 마련 0xFF

프로그램에서 필요한 데이터를 임시적으로 저장할 수 있는 공간에 이름(식별자) 붙인것 식별자를 통해 자유롭게 데이터에 대해 읽기, 쓰기, 덮어쓰기 가능

main memory

(6)

변수(variable)

메모리 공간 일부 0xFF

식별을 위하여 식별자 붙임 프로그램에서 필요한 데이터를 임시적으로 저장할 수 있는 공간에 이름(식별자) 붙인것

식별자를 통해 자유롭게 데이터에 대해 읽기, 쓰기, 덮어쓰기 가능

main memory radius

radius

(7)

변수(variable)

메모리 공간 일부 0xFF

프로그램에서 필요한 데이터를 임시적으로 저장할 수 있는 공간에 이름(식별자) 붙인것 식별자를 통해 자유롭게 데이터에 대해 읽기, 쓰기, 덮어쓰기 가능

main memory radius

radius 500

읽기/쓰기/덮어쓰기자유로운

(8)

자료형(data type)

변수에 담을 데이터 종류

1234 0.123 ‘A’

(9)

자료형(data type)

변수에 담을 데이터 종류

1234 0.123 ‘A’

(Integer type)정수형 부동 소수점형

(Floating-point type) 문자형 (Character type)

(10)

자료형(data type)

변수에 담을 데이터 종류

1234 0.123 ‘A’

(Integer type)정수형 부동 소수점형

(Floating-point type) 문자형 (Character type)

데이터 형태에 따라 변수의 종류를 다르게한다.

(11)

4

(12)

정수형

• 정수형을 사용하는 문제 예

• 학생 A와 학생 B의 나이 입력

학생A - 학생B

• 학생A와 학생B의 나이차 출력

(13)

실수형

• 평균학점 구하는 문제

• 수강한 과목 별 학점 입력

• 평균 학점 구하기(과목별 학점 합/수강한 과목 수)

평균 학점 출력

(14)

type함수를 이용하여 다음에 해당하는 자료형을 확인해 보자.

1) 10 2) 10.0 3) “10.0”

자료형 알려주는 함수: type()

7

4.2. string 형

▪ 해당하는 변수 또는 값의 자료형이 무엇인지 알고자 할 때 쓰임

[예]

type(argument) 인수(argument)의 자료형(type)을 반환

(15)

8

>>> type(10)

<class ‘int’>

>>> type(10.0)

<class ‘float’>

>>> type(“10.0”)

<class ‘str’>

>>>

(16)

[예제 4-11] 자료형을 확인하는 연습

9

4.2. string 형

▪ 문제되는 상황

• 프로그램에서 변수에 직접 숫자를 지정하는 경우는 정수(int)형으로 인식되지만, 
 사용자들로부터 숫자를 입력 받는 경우는스트링(string)형으로 인식됨

• 프로그램에서 자료형이 분명하게 표현되는 경우는 매우 드뭄

– 모든 변수에 대해서는 type함수를 이용하여 자료형을 확인하는 절차를 거쳐야 함

다음 명령어에 대해 자료형을 확인 해 보자.

1) n = 3

2) n = input(‘enter the number’)

(17)

[예제 4-11] 자료형을 확인하는 연습

10

4.2. string 형

>>> n = 3

>>> type(n)

<class 'int'>

>>> n = input(‘enter the number’) enter the number7

>>> type(n)

<class 'str'>

>>>

(18)

예시

(19)

파이썬 정수,실수,8,16진수

(20)

입력문을 위한 함수

13

4.1. 입출력 함수의 사용

▪ Python에서 많이 사용하는 입력함수는 2가지 형식으로 나눌 수 있다.

[예]

variable_name=input() 사용자로부터 입력을 받는다.

variable_name=input(‘문자열’) ‘문자열’에 해당하는 내용을 출력 후 사용자로부터 입력을 받는다.

>>> name = input() Gildong

>>> name

‘Gildong’

>>>

>>> name = input(‘What is your first name? ’) What is your first name? Gildong

>>> name

‘Gildong’

>>>

(21)

[예제 4-1] input()의 활용

14

4.1. 입출력 함수의 사용

(22)

[퀴즈 4-1]

15

4.1. 입출력 함수의 사용

▪ 다음 코드의 괄호 안 결과를 예측하여 보자

>>>favorite_color = input('What is your favorite color?')

What is your favorite color?Blue

>>>favorite_number = input('What is your favorite number? ')

What is your favorite number?111

>>>favorite_color

( )

>>>favorite_number

( )

(23)

출력문을 위한 함수

16

4.1. 입출력 함수의 사용

▪ 입력을 위한 input() 함수가 있다면, 출력을 위한 print() 함수도 존재한다.

▪ 출력을 위한 함수는 3가지 형식으로 나눌 수 있다.

print(‘문자열’) ‘문자열’을 화면에 출력해준다.

print(variable_name) 변수 variable_name에 해당하는 값을 화면에 출력해준다.

print(‘문자열’, variable_name) ‘문자열’과 변수 variable_name에 해당하는 값을 연속해서 화면에 출력해준다.

(24)

[예] 출력문을 위한 함수

17

4.1. 입출력 함수의 사용

(25)

[예제 4-2] print()의 활용

18

4.1. 입출력 함수의 사용

(26)

[예제 4-3] print()의 다양한 활용

19

4.1. 입출력 함수의 사용

(27)

[퀴즈 4-2]

20

4.1. 입출력 함수의 사용

▪ 다음 코드의 괄호 안 결과를 예측하여 보자.

>>>name = 'Gildong'

>>>print('Hello, my name is', name)

( )

(28)

4장. 입력문과 출력문 ­ 입출력, string

4.2. string 형

(29)

문자 : string 형

• 프로그래밍에서 문자를 다루는 경우

• 문자 정보를 사용해야 하는 경우, 이를 다루기 위한 자료형이 필요함

• 예를 들어 학생의 주소지 정보를 저장할 필요가 있을때

• 따옴표(‘)를 사용해서 ‘string’, ‘Changwon national university’와

같이 나타낸다

(30)

String 형

23

4.2. string 형

▪ 문자들의 집합, 문자들의 연속

• 단어 또는 문장 [예제 4-4] string 형의 예

(31)

예시

(32)

String 형에서의 Quate

25

4.2. string 형

▪ string형은 따옴표인 quote를 이용하여 나타낸다.

▪ Python에서는 string형을 만들 때 다음 4가지 형식의 Quate가 모두 허용된다.

▪ 특히 유용하게 쓰이는 부분을 살펴보면, 다음과 같다.

‘’ “ ” ‘‘‘ ’’’ “““ ”””

‘’ string 내에 “” 를 포함해야 하는 경우

“” string 내에 ‘’를 포함해야 하는 경우

‘“’” 여러 문장을 사용하고, string 내에 “”를 포함해야 하는 경우

“““””” 여러 문장을 사용하고, string 내에 ‘’를 포함해야 하는 경우

(33)

[예] string 형

26

4.2. string 형

▪ quote의 형태에 따라 쓰임새를 주의해야 함

p87

(34)

문자열 병합 (string Concatenation)

27

4.2. string 형

▪ ‘+’ 연산자를 두 문자(열) 사이에 사용하여 둘을 합치는 기능을 함

[예제 4-5] string Concatenation

“문자(열)” + “문자(열)” + … + “문자(열)” 각 문자 또는 문자열을 병합하여 하나의 문자로 생성

>>> start = ‘==========‘

>>> title = ‘Python Program’

>>> finish = ‘==========‘

>>> print(start + title + finish)

==========Python Program==========

>>>

제목 표시줄을 출력해 보자.

1) 출력할 내용은 ‘==========Python Program==========‘ 이다.

2) ‘==========‘, ‘Python Program’, ‘==========‘ 세 개의 문자열로 나뉘어져 있다.

3) ‘+’ Operator를 사용해서 출력한다.

(35)

[퀴즈 4-3]

28

4.2. string 형

▪ 다음 코드의 괄호 안 결과를 예측하여 보자.

>>> name = 'Gildong'

>>> location = 'Seoul'

>>> print('Hello, My name is '+ name +'. And I live in ' + location + '.')

( )

(36)

문자열 연속 (string iteration)

29

4.2. string 형

▪ ‘*’ 연산자를 사용해서 같은 문자(열)를(을) 반복적으로 출력 할 수 있음

[예제 4-6] string Iteration

“문자(열)” * n (n은 정수) 문자 또는 문자열을 n의 배수만큼 반복하여 하나의 문자로 생성

>>> start = ‘=‘ * 10

>>> title = ‘Python Program’

>>> finish = ‘=‘ * 10

>>> print(start + title + finish)

==========Python Program==========

>>>

제목 표시줄을 출력해 보자.

1) 출력할 내용은 ‘==========Python Program==========‘ 이다.

2) ‘= ‘, ‘Python Program’, ‘=‘ 세 개의 문자열로 나뉘어져 있다.

3) ‘*’ Operator를 사용해서 출력한다.

(37)

[퀴즈 4-4]

30

4.2. string 형

▪ 다음 코드의 괄호 안 결과를 예측하여 보자.

>>> string1 = 'Hello,'

>>> string2 = ' Python'

>>> star = '*******'

>>> star = '***'

>>> print(star * 3 + string1 + string2 + star*3)

( )

(38)

String의 길이를 알려주는 함수: : len()

31

4.2. string 형

▪ Python에서는 공백(space)도 문자로 취급한다.

▪ 길이 측정 시 공백(space) 또한 문자(열)의 길이(크기)에 속함

len(문자 또는 문자열) 문자 또는 문자열의 길이(크기)를 반환

I am a boy

10 글자

(39)

[예제 4-7] string의 길이를 알려주는 함수 len() 연습

32

4.2. string 형

(40)

String의 indexing

33

4.2. string 형

▪ string의 index는 string내의 문자들에 대해 순번을 부여하는 것과 같음

▪ 공백(space) 또한 index가 부여된다.

string의 변수명[index_num] index_num에 해당하는 문자를 반환 (index는 항상 0부터 시작) 단, index_num으로 음수를 입력하면 string의 끝에서부터 문자를 반환

m o u n t a i n

0 1 2 3 4 5 6 7

(41)

[예제 4-8] strin의 indexing

34

4.2. string 형

(42)

[퀴즈 4-5]

35

4.2. string 형

▪다음 코드의 괄호 안 결과를 예측하여 보자

>>> string1 = 'python'

>>> string2 = 'programming'

>>> len(string1)

( )

>>> string3 = (string1 + ' ' + string2)

>>> len(string3)

( )

(43)

[퀴즈 4-6]

36

4.2. string 형

▪ 다음 코드의 괄호 안 결과를 예측하여 보자.

>>> string1 = 'Beautiful Weather'

>>> firstindex = string1[0]

>>> secondindex = string1[1]

>>> thirdindex = string1[11]

>>> print(firstindex + secondindex + thirdindex)

( )

(44)

[참고] string은 immutable(변경불가능)

37

4.2. string 형

▪ string은 한 번 지정하면 더 이상 바꿀 수 없음

• 할당문(=)을 지원하지 않음

• index를 이용한 변경을 허용하지 않는다. 즉, index를 이용한 할당은 에러가 된다.

[예제 4-9] string의 일부 내용 변경 불가

greeting = “Hello, world!” 일 때

1) greeting[0] = ‘J’를 실행 시킨 후 결과를 확인해 보자.

>>> greeting = ‘Hello, world!’

>>> greeting[0] = 'J'

Traceback (most recent call last):

File "<pyshell#10>", line 1, in <module>

greeting[0] = 'J'

TypeError: 'str' object does not support item assignment

>>> print(greeting) Hello, world!

>>>

(45)

▪ 에러 메시지 읽기

▪ 다음과 같은 메시지는 문법 에러가 발생할때 나는 에러 메시지이다

▪ 컴파일러와 버전에 따랴 약간씩 차이가 날 수 있다

38

(46)

String의 slice

39

4.2. string 형

▪ slice를 활용하면 string의 일부를 취할 수 있음

[예제 4-10] string의 Slice

[n:m] n번째부터 m번째 사이의 부분, n은 포함하고, m은 뺀 부분을 지정 결과적으로 (m-n)길이의 문자(열) 생성

H e l l o

index 0 1 2 3 4

e l l

index 1 2 3

“Hello”[1:4]

>>> tom = ‘Tom is a good student.’

>>> tom[9:13]

‘good‘

>>>

string의 slice를 활용하여 새로운 단어를 생성해보자.

1) 변수 tom은 “Tom is a good student.“ 문자열을 담고 있다.

2) 일부를 추출할 단어는 “good” 이다.

(47)

String의 slice

40

4.2. string 형

▪ slice의 범위를 지정하는 n과 m은 string의 index범위 내의 양의 정수로 정해져야 한다.

▪ 지정하지 않은 slice 범위에 대해서는 기본값이 적용됨

• string의 처음과 끝에 해당하는 index로 자동 지정

[예]

[:n] 처음부터 n을 포함하지 않는 범위까지 지정해서 slice [m:] m번째부터 string의 끝까지 범위를 지정해서 slice [m:문자열보다 큰 값] m번째부터 string의 끝까지 범위를 지정해서 slice

>>> fruit = ‘banana’

>>> fruit[:3]

'ban'

>>> fruit[3:]

'ana'

>>> fruit[3:999]

'ana‘

>>>

slice를 활용하여 주어진 string을 여러가지 형태로 분리 해 보자.

1) 변수 fruit은 “banana“ 문자열을 담고 있다.

(48)

[실습 4-1] string indexing & slice 연습

41

4.2. string 형

(49)

[퀴즈 4-7]

42

4.2. string 형

▪ 다음 괄호 안에 들어갈 알맞은 코드를 작성해보자.

>>> name = 'Hong Gildong'

>>> family_name = ( )

>>> family_name

'Hong'

(50)

강제 형 변환

43

4.2. string 형

▪ 강제 형 변환을 이용하면 원하는 자료형으로 변환이 가능

[예]

variable_name=int(variable_name) variable_name에 해당하는 변수를 정수(int)형으로 강제 형 변환 variable_name=float(variable_name

) variable_name에 해당하는 변수를 실수(float)형으로 강제 형 변환

>>> n = input(‘enter the number’) enter the number7

>>> type(n)

<class 'str'>

>>> n = int(n)

>>> type(n)

<class 'int'>

>>> n

7 >>> n = float(n)

>>> type(n)

<class ‘float’>

>>> n 7.0 >>>

다음에 해당하는 명령줄의 자료형을 확인해 보고,

강제 형 변환을 활용하여 자료형을 자유롭게 변경해 보자.

1) 변수 number에 input함수를 이용해서 숫자를 입력 
 받는다.

2) 입력 받은 숫자의 자료형을 변환한다.

(51)

[예] 강제 형 변환

44

4.2. string 형

(52)

[실습 4-2] 자료형 변환

45

4.2. string 형

(53)

[연습문제]

46

4.2. string 형

1. 다음 프로그램의 결과는 무엇인가?

>>>start = '*' * 10

>>>title = "Let's have fun“

>>>finish = '*' * 10

>>>print(start + title + finish)

>>>

2. 다음 프로그램의 결과는 무엇인가?

---

>>>title = 'Mission Impossible'

>>>title [9:13]

---

3. 다음 실행문의 잘못된 부분을 찾으시오.

(54)

[연습문제]

47

4.2. string 형

4. 다음 실행문이 잘못된 이유를 적으시오.

5. 다음 요구사항을 분석하여 프로그램을 작성하시오.

>>>greeting = 'hello!‘

>>>greeting[0] = 'H'

[제목]조건에 따른 연필과 펜 총 가격 변환

[요구사항]

연필과 펜의 구입하는 개수와 조건에 따라 총 가격을 반환해주는 프로그램을 작성해보자.

⦊연필은 3000원, 펜은 4000원이다.

⦊총 가격의 30%를 할인해주고 있다.

⦊변수 num_pencil, num_pen은 input함수를 통해 각각 연필과 펜의 개수를 입력 받는다.

⦊변수 total_price는 총 가격을 나타낸다.

[문제 해결 및 알고리즘]

연필 개수, 펜 개수 입력

-> input()총 가격 -> (1000 * num_pencil + 2000 * num_pen)할인 적용 총 가격 -> 0.7 * total_price

[테스팅]

연필 개수 5개 입력하기 펜 개수 5개 입력하기

>>>연필은 몇 개를 구입하시겠습니까? 5

>>>펜은 몇 개를 구입하시겠습니까? 5

총 가격은 24500.0 원 입니다.

(55)

▪ 과제 #3

▪ 제목 : 4장 연습문제 풀이

▪ 연습문제의 프로그램들을 수행하고 그 결과를 캡쳐하여 보여준다

▪ 3,4번 프로그램은 실행문이 잘못된 이유를 적도록 한다

▪ 6번 문제는 : O,X 적기 문제임

▪ 7번 문제는 빈칸을 채우는 문제임

▪ 9,10번 문제는 먼저 예상 답을 적고 실행 후의 결과를 캡쳐하여 제시할 것

▪ 제출일 :

48

참조

관련 문서

*단어 사이의 공통성과

[r]

[r]

따라서 우리는 비판적 글읽기와 비판적 글쓰기는 비판적 사고행위의 두 측면으로 간주할 수 있다.. 글을 제대로 읽기 위해서는 글쓴이의 생각을 잘 살펴야 하며,

또한 공공 데이터포털에서 제공하는 다양한 오픈 API 데이터를 이용하여 우리 생활에서 활용할 수 있는 방법을, 디자인 씽킹 과정을 통해 창의적인 설계를 할

데이터 탐색가는 수많은 데이터를 걸러내 실제로 필요한 데이터를 발견하는 능력을 가진 사람이다.. - 분석한 자료를 가지고 찾아낸 우리가 적용할

패널 이름 앞에 표시가 되어 있는 패널들은 세로 높이를 조절할

- Brush Affects In Tangent Handles - 앵커 포인트의 조절선 안쪽에 주름을 만든다. - Brush Affects Out Tangent Handles - 앵커 포인트의 조절선 바깥쪽에