Y. Daniel Liang 길준민 · 정재화.

Slides:



Advertisements
Similar presentations
GUIDO VAN ROSSUM IN AMSTERDA M 개발 시간을 단축 시켜준다 배우기 쉬울 뿐 아니라 개발자로 사용하기도 쉽다 코드를 이해하기 쉽다 코드가 짧아진다 팀 프로젝트에 좋다 확장성이 뛰어나다 (C, Java) 파이선의 장점.
Advertisements

최적화 문제 해결 현대 생산  운영관리 부산대학교 산업대학원 2012 년 2 학기 하병현.
2 장 자료형 및 연산자 - 김욱동 -. 목 차목 차  변수  자료형  유니코드  리스트  튜플  세트  사전  부울  얕은 / 깊은 복사.
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
기본 자료형 순천향대학교 정보기술공학부 이 상 정. 자료형의 선언 컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 3 자료형 선언 기본 자료형문자형 char 정수형 int 실수형 float double 형없음 void.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍.
MATLAB 기초강의 연세대학교 방사선학과 방사선영상 실험 실습. MATLAB 이란 ?  Matlab 이란 MATrix LABoratory 를 뜻하는 말로서, 수 치해석, 행렬연산, 신호처리 및 간편한 그래픽 기능 등을 통합하여 고성능의 수치계산 및 결과의 가시화 기능을.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
2014년도 주요법령 개정사항 (월) ~ (금) 대한전문건설협회 강원도회.
지적기초측량 경일대학교/부동산지적학과.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
서울시 ‘찾아가는 동 주민센터’ 사업 시행 이후 지역사회의 변화
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
14주차 1교시 강화계획 [학습목표] 1. 강화계획의 정의를 안다 [학습내용] 1. 단순한 강화계획 2. 간헐적 강화 3. 복합 계획 4. 선택과 대응법칙 [사전학습] 강화계획이 일어날 수 있는 사례를 생각해본다.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
연장근로와 야간·휴일근로 김영호 노무사 나눔 노사관계연구소 소장 연세대 일반대학원 박사 수료 고려사이버대 법학과 외래교수
사회복지법인 실무자 교육.
고교평준화의 득과 실 김영주 이지영 최윤영.
Ruby on Rails – 1. Ruby Aon의 공부하면서 만드는 세미나 1탄.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
정적 메소드와 정적 변수 상수 래퍼 클래스 포매팅
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
데이터 베이스 설계 및 실습 #3 - SQL 함수.
공학용 계 산 기 최 종 발 표 팀명 : won’s 팀원 : 함현식 오철원.
Lesson 5. 레퍼런스 데이터형.
화면(UI) 기반 도메인모델 작성 2014년 8월.
MATLAB 개요와 응용 1장 MATLAB 시작하기
프로그래밍실습 제 4 강.
발로 하는 파이썬 세미나 안녕하세요. 저는 발로 하는 파이썬 세미나를 발표할….
프로그래밍2 및 실습 C언어 기반의 C++ 2.
Power Java 제20장 패키지.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
제주닷컴 매뉴얼 (실시간 예약시스템) 2013년 10월.
HTML5 웹 프로그래밍 입문 (개정판) 9장. 자바스크립트 객체와 DOM.
국가대표 생애주기교육 프로그램 참여방법 안내
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
HTML CSS 자바스크립트 무작정 따라하기
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
제1장 자료구조를 배우기 위한 준비.
수업 첫 날 교육B 황유미 첫 수업 계획에 대해 알아보도록 하겠습니다..
DIAT 스프레드시트 작성방법 한국정보통신진흥협회.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
6장 데이터 타입(3) 순천향대학교 컴퓨터공학부 하 상 호.
연결링크 이미지를 마일리지샵 내에 기획전으로 제작하여 오픈/노출 사이즈 가로 1000/세로 상관x 배너사이즈 가로 400
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
Chapter 12. String 클래스의 디자인
학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.
CHAPTER 06 청소년의 행동문화 : 폭력(따돌림), 위험행동, 참여.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
의성어 국어어휘론 이신옥 정지연 정지형 임총인.
장애인단체 간담회 마스터 제목 스타일 편집 마스터 제목 스타일 편집 장애인 단체 간담회 마스터 부제목 스타일 편집
자바 5.0 프로그래밍.
Welcome to Wee Class 곤지암고등학교 전문상담교사 김진희.
2015년 2학년 1반.
2.1 MATLAB 환경 2.2 배정 2.3 수학적 연산 2.4 내장함수의 사용 2.5 그래픽 2.6 다른 자원
Spring, 2019 School of CSE Pusan National University
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
C.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
빠르게 활용하는 파이썬3 프로그래밍 Chapter 8. 입출력 안녕하세요, 파이썬의 세계에 오신 것을 환영합니다.
컴퓨터 프로그래밍 및 실습 – 5주차 내장함수 / 외장함수 (1)
Python 기본.
Presentation transcript:

Y. Daniel Liang 길준민 · 정재화

Chapter 3 수학함수, 문자열 및 객체

CONTENTS Ch3 수학 함수, 문자열 및 객체 3.1 들어가기 3.6 숫자 및 문자 서식 지정하기 3.1 들어가기 3.2 공통 파이썬 함수 3.3 문자열 및 문자 3.4 사례 연구: 최소 동전개수 계산하기 3.5 객체와 메소드의 개념 3.6 숫자 및 문자 서식 지정하기 3.7 다양한 도형 그리기 3.8 색 및 폰트 지정하기 네 도시에 둘려쌓인 지역의 넓이를 추정해야 한다고 가정해보자. 이 들 도시의 GPS 위치(위도와 경도)는 아래 그림과 같이 주어진다. 이 문제를 해결하기 위한 프로그램을 어떻게 작성할 것인가? 이 장을 완료하고 나면 이러한 프로그램을 작성할 수 있게 될 것이다. 학습하기에 앞서 서울 (35.2270869, -80.8431267) 대구 (32.0835407, -81.0998342) 제주 (28.5383355, -81.3792365) 광주 (33.7489954, -84.3879824)

학습목표 math 모듈에 포함된 함수를 사용하여 수학적 문제를 해결할 수 있다(3.2절) 문자열과 문자를 표현하고 처리할 수 있다(3.3~3.4절) ASCII와 유니코드를 사용하여 문자를 인코딩할 수 있다(3.3.1~3.3.2절) ord 함수를 사용하여 문자의 숫자 코드를 구하고 chr 함수로 숫자 코드를 문자 로 변환할 수 있다(3.3.3절) 이스케이프 시퀀스를 사용하여 특수 문자를 표현할 수 있다(3.3.4절). end 인자와 함께 print 함수를 호출할 수 있다(3.3.5절). str 함수를 사용하여 숫자를 문자열로 변환할 수 있다(3.3.6절). 문자열 연결에 + 연산자를 사용할 수 있다(3.3.7절). 키보드로부터 문자열을 읽을 수 있다(3.3.8절). 객체와 메소드의 개념을 설명할 수 있다(3.5절). format 함수를 사용하여 숫자와 문자열의 서식을 지정할 수 있다(3.6절). 다양한 도형을 그릴 수 있다(3.7절). 색상과 폰트를 사용하여 도형을 그릴 수 있다(3.8절).

내장함수와 수학 모듈 >>> max(2, 3, 4) # 최댓값을 반환한다 4 >>> min(2, 3, 4) # 최솟값을 반환한다 2 >>> round(3.51) # 가장 가까운 정수로 근사한다 >>> round(3.4) # 가장 가까운 정수로 근사한다 3 >>> abs(-3) # 절댓값을 반환한다 >>> pow(2, 3) # 2 ** 3 8

수학적 함수 실행 함수 설명 예 fabs(x) x의 절대값을 실수로 반환한다. fabs(-2) = 2.0 ceil(x) floor(x) x의 가장 가까운 정수로 버림하여 반환한다. floor(2.1) = 2 floor(-2.1) = -3 exp(x) x의 지수함수(ex) 값을 반환한다. exp(1) = 2.71828 log(x) x의 자연로그 값을 반환한다. log(2.71828) = 1.0 log(x, base) 특정 밑을 갖는 x이 로그 값을 반환한다. log(100, 10) = 2.0 sqrt(x) x의 제곱근을 반환한다. sqrt(4.0) = 2 sin(x) x의 사인 값을 반환한다. x는 라디안 각도로 표현된다. sin(3.14159 / 2) = 1 sin(3.14159) = 0 asin(x) 사인의 역함수에 대한 라디안 각도를 반환한다. asin(1.0) = 1.57 asin(0.5) = 0.523599 cos(x) x의 코사인 값을 반환한다. x는 라디안 각도로 표현된다. cos(3.14159 / 2) = 0 cos(3.14159) = -1 acos(x) 코인 역함수에 대한 라디안 각도를 반환한다. acos(1.0) = 0 acos(0.5) = 1.0472 tan(x) x의 탄젠트 값을 반환한다. x는 라디안 각도로 표현된다. tan(3.14159 / 4) = 1 tan(0.0) = 0 degrees(x) 라디안 각도 x를 도 단위로 변환한다. degrees(1.57) = 90 radians(x) 도 x를 라디안 각도 단위로 변환한다. radians(90) = 1.57 MathFunction 실행

사례연구: 내각 계산 예를 들어 삼각형의 세 변이 주어졌을 때, 다음의 공식을 사용하여 세 내각을 계산할 수 있다. 실행 예를 들어 삼각형의 세 변이 주어졌을 때, 다음의 공식을 사용하여 세 내각을 계산할 수 있다. PrintGradeFunction 실행

문자열 및 문자 문자열(1장에서 설명된)은 연속된 문자를 의미한다 값은 반드시 작은따옴표(‘ ‘)나 큰따옴표(“ “)의 쌍으로 둘러 쌓여진다 파이썬에 문자에 대한 데이터 타입을 지원하지 않는다 한 문자의 문자열이 곧 문자를 나타낸다 letter = 'A' # letter = "A" 와 같다 numChar = '4' # numChar = "4" 와 같다 message = "좋은 아침" # message = '좋은 아침'과 같다

노트 통일성을 위해, 이 책에서는 한 문자 이상의 문자열에 대해서는 큰따옴표를 사용하고 한 문자나 공백 문자열에 대해서는 작은따옴 표를 사용한다. 이러한 규칙은 다른 프로그래밍 언어에서도 일관되게 적용되므로 파이썬 프로그램을 다른 언어로 작성된 프로그램으로 변환하기가 수월해진다.

유니코드와 ASCⅡ 코드 파이썬은 16-비트 인코딩 체계인 유니코드(Unicode) 또한 지원한다. 유니코드는 전 세계 문자를 표현하기 위한 인코딩 체계이다. ASCⅡ는 유니코드의 작은 일부분이다. DisplayUnicode 실행

부록 B: ASCⅡ 문자 집합 1 ASCⅡ 문자 셋은 유니코드 \u0000부터 \u007f까지 대응되는 일부분이다.

부록 B: ASCⅡ 문자 집합 2

Ord 함수와 chr 함수 >>> ch = 'a' >>> ord(ch) 97 'b'

특수 문자를 위한 이스케이프 시퀀스 문자 이스케이프 시퀀스 이름 숫자 값 \b 백스페이스 8 \t 탭 9 \n 라인피드 10 \f 폼리드 12 \r 케리지 리턴 13 \\ 역슬래쉬 92 \’ 단일 인용부호 39 \’’ 이중 인용부호 34

줄바꿈 없이 출력하기 print(item, end = 'anyendingstring') print("AAA", end = ' ') print("BBB", end = '') print("CCC", end = '***') print("DDD", end = '***') 결과: AAA BBBCCC***DDD***

Str 함수 Str 함수는 숫자를 문자로 변환하는 데 사용된다. >>> s = str(3.4) # 실수를 문자열로 변환한다 >>> s '3.4' >>> s = str(3) # 정수를 문자열로 변환한다. '3' >>>

문자열 연결 연산자 두 숫자를 더하기 위해서 + 연산자를 사용한다. + 연산자는 두 문자열을 연결하는 데 사용될 수도 있다. 다음 예제를 살펴보자. >>> message = "파이썬에" + " 오신 것을" + " 환영합니다" >>> message '파이썬에 오신 것을 환영합니다' >>> chapterNo = 3 >>> s = str(chapterNo) + "장" >>> s '3장' >>>

콘솔로부터 문자열 읽기 콘솔로부터 문자열을 읽기 위해서는 input 함수를 사용한다. 예를 들어, 다음 코드는 세 문자열을 키보드로부터 읽는다 s1 = input("문자열을 입력하세요: ") s2 = input("문자열을 입력하세요: ") s3 = input("문자열을 입력하세요: ") print("s1은" + s1) print("s2는" + s2) print("s3은" + s3)

사례 연구: 최소 동전 개수 계산하기 프로그램은 전체 금액을 사용자가 원화로 입력하게 한 후, 실행 예와 같이 동일한 금액을 천 원, 오백 원, 백 원, 오십 원, 십 원 그리고 일 원 단위 화폐의 목록으로 출력한다 프로그램은 반드시 각 단위의 돈을 최대한 개수로 사용한다. 천 원, 오백 원, 백 원, 오십 원, 십 원과 일 원 순으로 최대한 갯수의 지폐(또 는 동전)를 사용한다 ComputeChange 실행

객체와 메소드의 개념 파이썬에서 숫자도 객체이고, 문자열도 객체이다. 즉 모든 데이터는 객체이다 객체는 개체이다. 파이썬에서 숫자도 객체이고, 문자열도 객체이다. 즉 모든 데이터는 객체이다 객체는 개체이다. 각 객체는 id와 type을 갖는다 같은 종류의 객체는 같은 타입을 갖는다. id 함수와 type 함수를 사용하여 객체에 대한 정보를 알아낼 수 있다

객체의 type과 ids id와 type 함수는 프로그램에서 거의 사용되지 않는다. 그러나 객체 를 이해하기 위한 매우 훌륭한 교육 도구이다. >>> n = 3 # n 은 정수 >>> id(n) 505408904 >>> type(n) <class 'int'> >>> f = 3.0 # f는 실수 >>> id(f) 26647120 >>> type(f) <class 'float'> >>> s = "환영합니다" # s is a string >>> id(s) 36201472 >>> type(s) <class 'str'>

OOP와 str객체 INT 3에 대한 객체 n=3 Id: 505408904 n Float 3.0에 대한 객체 f=3.0

객체 vs. 객체 레퍼런스 변수 n = 3 명령문은 n에 값 3을 할당한다. 그러나 실제로는 변수 n에 의해 참조되는 int 객체에 3을 할당하는 것이다.

메소드 객체에 대하여 여러 연산을 수행할 수 있다 이러한 연산은 함수를 사용하여 정의된다 객체에 대한 함수를 파이썬에서는 메소드(method)라고 한다 메소드는 오직 특정 객체로부터 호출될 수 있다. 예를 들면, 문자열 타입은 새로운 소문자와 대문자 문자열을 반환하 는 lower()와 upper()와 같은 메소드를 가지고 있다 다음은 이러한 메소드를 호출하는 방법에 대한 예제이다

str 객체 메소드 >>> s = "Welcome" >>> s1 = s.lower() # lower 메소드를 호출한다. >>> s1 ‘welcome' >>> s2 = s.upper() # upper 메소드를 호출한다. >>> s2 'WELCOME'

시작과 끝의 공백 문제 제거하기 또 다른 유용한 문자열 메소드는 strip()이다. >>> s = "\t 환영합니다. \n" >>> s1 = s.strip() # strip 메소드를 추천한다. >>> s1 '환영합니다.'

숫자와 문자열 서식화하기 때때로 특정 서식에 맞춰 숫자를 출력하는 것이 필요할 때가 있다. 예를 들면, 다음 코드는 주어진 대출금과 연이율을 사용하여 이자를 계산한다. Format 함수는 숫자 또는 문자열을 서식화한 문자열을 반환한다. format(item, format-specifier)

부동소수점 수 서식화하기 print(format(57.467657, '10.2f')) 서식 지정자 넓이 소수점 이하 자릿수 변환 코드

과학적 표기법 서식 지정하기 변환코드를 f에서 e로 변경하면, 숫자는 과학적 표기법으로 서식화된 다 예를 들면 print(format(57.467657, '10.2e')) print(format(0.0033923, '10.2e')) print(format(57.4, '10.2e')) print(format(57, '10.2e'))

백분율로 서식 지정하기 숫자를 백분율로 서식화하기 위해 변환 코드 %를 사용한다. 예를 들면, print(format(0.53457, '10.2%')) print(format(0.0033923, '10.2%')) print(format(7.4, '10.2%')) print(format(57, '10.2%')) 참고 : 1은 100%

서식 정렬하기 기본적으로 숫자의 서식은 오른쪽 정렬이다 서식 지정자에 < 기호를 삽입하여 지정된 너비 내에서 결과 서식 항 목을 왼쪽 정렬로 설정할 수 있다. 예를 들면, print(format(57.467657, '10.2f')) print(format(57.467657, '<10.2f'))

정수 서식 지정하기 정수에 변환 코드 d, x, o 및 b를 사용하여 10진수, 16진수, 8진수 또는 2진 수로 서식화할 수 있다 변환 시 너비 지정이 가능하다 print(format(59832, '10d')) print(format(59832, '<10d')) print(format(59832, '10x')) print(format(59832, '<10x'))

문자열 서식 지정하기 문자열을 특정 너비로 서식화하기 위해 변환 코드 s를 사용할 수 있 다. 예를 들면, print(format("파이썬에 오신 것을 환영합니다.", '20s')) print(format(" 파이썬에 오신 것을 환영합니다 ", '<20s')) print(format(" 파이썬에 오신 것을 환영합니다 ", '>20s')) 파이썬에 오신 것을 환영합니다. □□□ 파이썬에 오신 것을 환영합니다. 20

다양한 도형 그리기 파이썬의 turtle 모듈은 펜을 움직이고, 펜의 크기를 설정하고, 펜을 들 어올리고 내려놓기 위한 메소드를 포함한다. turtle은 turtle 모듈을 import할 때 생성된 객체이다.

Turtle의 펜 그리기 상태 메소드 메쏘드 명 설명 turtle.pendown() 펜을 내려놓는다 – 움직일 때 그려진다. turtle.penup() 펜을 들어올린다 – 움직일 때 그려지지 않는다. turtle.pensize() 선의 두께를 특정 너비로 설정한다.

Turtle의 이동 메소드 메쏘드 명 설명 turtle.forward(d) Turtle이 향하고 있는 방향으로 특정 거리 d만큼 앞으로 이동시킨다. turtle.backward(d) Turtle이 향하고 있는 반대 방향으로 특정 거리 d만큼 뒤로 이동시킨다. Turtle의 방향은 바뀌지 않는다. turtle.right(angle) Turtle을 특정 각 만큼 오른쪽으로 회전시킨다. turtle.left(angle) Turtle을 특정 각 만큼 왼쪽으로 회전시킨다. turtle.goto(x, y) Turtle을 절대 위치 (x, y)로 옮긴다. turtle.setx(x) Turtle의 x 좌표를 특정 위치로 옮긴다. turtle.sety(y) Turtle의 y 좌표를 특정 위치로 옮긴다. turtle.setheading(angle) 특정 각도로 Turtle의 방향을 설정한다. 0-동쪽, 90-북쪽, 180-서쪽, 270-남쪽. turtle.home() Turtle을 원점 (0, 0)으로 옮기고 동쪽 방향으로 설정한다. turtle.circle(r, ext, step) 특정 반지름 r, 경계 ext와 단계 step인 원을 그린다. turtle.dot(diameter, color) 특정 지름 diameter와 색상 color인 원을 그린다. turtle.undo() Turtle의 마지막 명령을 (반복적으로)되돌린다. turtle.speed(s) 1부터 10사이의 정수(10이 최대) s로 Turtle의 속도를 설정한다.

사례 연구: 간단한 도형 그리기 SimpleShapes 실행

색 및 폰트 지정하기 메쏘드명 설명 turtle.color(c) 펜 색상을 c로 설정한다. turtle.fillcolor(c) turtle.begin_fill() 도형을 채우기 전에 이 메소드를 호출한다. turtle.end_fill() begin_fill에 대한 마지막 호출 전까지 그려진 도형을 채운다. turtle.filling() 채우기 상태를 반환한다. 채우기 상태이면 True, 그렇지 않으면 False turtle.clear() 창을 깨끗하게 지운다. turtle의 상태와 위치를 영향을 받지 않는다. turtle.reset() 창을 깨끗하게 지우고 turtle의 상태와 위치를 원래 기본값으로 재설정한다. turtle.screensize(w, h) 캔버스의 높이 w와 높이 h를 설정한다. turtle.hideturtle() turtle을 보이지 않게 만든다. turtle.showturtle() turtle을 보이게 만든다. turtle.isvisible() turtle이 보이면 True를 반환한다. turtle.write(s, font=("Arial", 8, "normal")) 현재 turtle의 위치에 문자열 s를 쓴다. 폰트는 폰트명, 폰트크기, 폰트유형의 세 값으로 구성된다.

색상 및 채우기를 사용하여 그리기 turtle 객체는 색상과 폰트를 설정하는 메소드를 포함한다. ColorShapes 실행

감사합니다.