3장 함수

Similar documents
17장 클래스와 메소드

Chapter 3 함수 프로그래밍이라는 문맥에서 함수(function)은 연산을 수행하기 위한 일련의 문장들에 이름을 붙여 놓은 것이다. 함수를 정의할 때는 이름과 문장들 지정해야 한다. 그 다음에 함수를 지정한 이름으로 호출(call) 할 수 있다. 3.1 함수 호출

8장 문자열

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - additional01.ppt [호환 모드]

14장 파일

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

슬라이드 1

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint Presentation

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

쉽게 풀어쓴 C 프로그래밍

C 언어 프로그래밊 과제 풀이

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

11장 포인터

Microsoft PowerPoint - Chapter8.pptx

Microsoft PowerPoint - Java7.pptx

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 05장(함수) [호환 모드]

확률 및 분포

Microsoft PowerPoint - C++ 5 .pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx

tkinter를 이용한 계산기 구현

Modern Javascript

기술통계

Tcl의 문법

C 프로그래밊 개요

슬라이드 1

슬라이드 1

Microsoft PowerPoint - chap06-2pointer.ppt

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint 세션.ppt

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - CSharp-10-예외처리

adfasdfasfdasfasfadf

설계란 무엇인가?

10장 리스트

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

슬라이드 1

쉽게

Microsoft Word - FunctionCall

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

SIGPLwinterschool2012

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

데이터 시각화

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

OCW_C언어 기초

C 프로그래밊 개요

untitled

Microsoft PowerPoint - Chapter 1-rev

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

윈도우즈프로그래밍(1)

C# Programming Guide - Types

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

14장 파일

PowerPoint 프레젠테이션

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

PowerPoint Presentation

컴파일러

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint - ch 전처리기, 다중 소스파일 pm1015


HTML5 웹프로그래밍 입문-개정판

강의10

PowerPoint Template

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

chap10.PDF

쉽게 풀어쓴 C 프로그래밍

MySQL-.. 1

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

- 클래스를이용한 2개의계산기구현 class Calculator: def init (self): self.result = 0 def adder(self, num): self.result += num return self.result cal1 = Calculator()

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - 제11장 포인터

JAVA PROGRAMMING 실습 08.다형성

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

슬라이드 1

vi 사용법

282서비스업관리-마트

Microsoft PowerPoint - chap06-5 [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - 9ÀÏ°_ÂüÁ¶ÀÚ.ppt

Microsoft PowerPoint - e pptx

No Slide Title

Transcription:

3 장함수 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 3 장함수 1 / 20

학습내용 함수호출타입변환함수수학함수사용자정의함수파라미터와인자변수와파라미터의범위함수의구분함수를사용하는이유 from을이용한가져오기디버깅변수의범위재귀함수 박창이 ( 서울시립대학교통계학과 ) 3 장함수 2 / 20

함수호출 함수는어떤연산을수행하는일련의명령문들로함수이름으로호출 (call) 되는데, 인자 (argument) 를입력으로받아반환값 (return value) 를반환함 >>> type(32) <type int > 함수명 : type 인자 : 32 반환값 : <type int > 박창이 ( 서울시립대학교통계학과 ) 3 장함수 3 / 20

타입변환함수 int 함수 : 주어진값을정수로변환하거나오류메시지를출력하는데, 인자값이부동소수점값이면소수점아래의값을버리고정수값을줌 float 함수 : 주어진값을부동소수점값으로변환하거나오류메시지를출력 str 함수 : 인자값을문자열로변환 박창이 ( 서울시립대학교통계학과 ) 3 장함수 4 / 20

수학함수 Python에서모듈 (module) 은 R의라이브러리 (library) 처럼함수들의집합체임 module을사용하기위해서는 import 모듈명 을실행해야함모듈명을프린트하면 <module 모듈명 (built-in)> 과같은정보를출력모듈의함수는 math.sin과같이모듈명. 함수명으로도트기호 (dot notation) 로호출해야함삼각함수는래디언 (radian) 을인자로받고 math.pi는 15자리까지정확한 π값상수 박창이 ( 서울시립대학교통계학과 ) 3 장함수 5 / 20

사용자정의함수 I 예제 def print_lyrics(): # header print("i m a lumberjack, and I m okay.") # body print("i sleep all night and I work all day.") def: 함수정의를나타내는키워드 print lyrics는함수명으로변수명과동일한규칙으로정함괄호안에는인자가옴대화식모드에서는함수정의다음에빈줄을삽입해야하지만스크립트모드에서는상관없음 type은 function 이며호출은내장함수와동일하게 print lyrics() 함수는실행전에정의되어야함 박창이 ( 서울시립대학교통계학과 ) 3 장함수 6 / 20

사용자정의함수 II 인자전달 디폴트값설정 >>> def describe_pet(pet_name, animal_type= dog ): >>> print("\ni have a " + animal_type + ".") >>> print("my " + animal_type + " s name is " + pet_nam >>> describe_pet(pet_name= willie ) I have a dog. My dog s name is willie. >>> describe_pet(pet_name= harry, animal_type= hamster ) I have a hamster. My hamster s name is harry. 박창이 ( 서울시립대학교통계학과 ) 3 장함수 7 / 20

사용자정의함수 III 옵션인자 >>> def get_name(first_name, last_name, middle_name= ): >>> if middle_name: >>> full_name = first_name + + middle_name + >>> else: >>> full_name = first_name + + last_name >>> return(full_name) >>> musician = get_name( jimi, hendrix ) >>> print(musician) jimi hendrix >>> musician = get_name( john, hooker, lee ) >>> print(musician) john lee hooker 박창이 ( 서울시립대학교통계학과 ) 3 장함수 8 / 20

사용자정의함수 IV 입력값의갯수를모르는경우 >>> def make_pizza(*toppings): >>> print("\nmaking a pizza with the following toppings >>> for topping in toppings: >>> print("- " + topping) >>> make_pizza( peperoni ) Making a pizza with the following toppings: - peperoni >>> make_pizza( mushrooms, green peppers, extra cheese Making a pizza with the following toppings: - mushrooms - green peppers - extra cheese 박창이 ( 서울시립대학교통계학과 ) 3 장함수 9 / 20

사용자정의함수 V 매개변수앞에가두번붙으면매개변수는사전이됨 >>> def print_kwargs(**kwargs): >>> print(kwargs) >>> >>> print_kwargs(name="foo", age=3) { name : foo, age : 3} lambda로생성한함수는 return이없어도결과값반환함 >>> add = lambda a,b: a+b >>> result = add(3, 4) >>> print(result) 7 박창이 ( 서울시립대학교통계학과 ) 3 장함수 10 / 20

파라미터와인자 함수내부에서인자들이할당되는변수를파라미터라함 def print_twice(bruce): print(bruce) print(bruce) 에서 bruce는파라미터실행예 michael = Eric, the half a bee. print_twice(michael) 인자를전달하는변수명 michael과파라미터명 bruce는상관이없음 박창이 ( 서울시립대학교통계학과 ) 3 장함수 11 / 20

변수와파라미터의범위 함수내부의변수와파라미터는국소 (local) 임 def cat_twice(part1, part2): cat = part1 + part2 print_twice(cat) print(cat) 실행시에러메시지 Traceback (most recent call last): File "<pyshell#56>", line 2, in <module> print(cat) NameError: name cat is not defined traceback은오류가발생한파일, 라인등을알려줌 박창이 ( 서울시립대학교통계학과 ) 3 장함수 12 / 20

함수의구분 fruitful 함수 : 결과값을반환 x = math.cos(radians) # assign golden = (math.sqrt(5)+1)/2 math.sqrt(5) # In script mode, the return value is not dis void 함수 : 실행은되지만결과값을반환하지않음 result = print_twice( Bing ) # displays but not return print(result) print(type(none)) # None type 박창이 ( 서울시립대학교통계학과 ) 3 장함수 13 / 20

함수를사용하는이유 일련의명령문들을함수로만들면가독성과디버깅이쉬워짐코드의반복을줄임으로써프로그램의크기를줄일수있고수정이쉬움긴프로그램을함수들로만들면각함수들을하나씩디버깅하여전체로만들수있음다른프로그램에사용할수도있음 박창이 ( 서울시립대학교통계학과 ) 3 장함수 14 / 20

from 을이용한가져오기 I 모듈을가져오는방법 import math print(math) print(math.pi) 직접 pi를접근하려고하면오류가발생 print(pi) from math import pi print(pi) 모듈에서모든것을다가져오려면 from math import * cos(pi) 박창이 ( 서울시립대학교통계학과 ) 3 장함수 15 / 20

from 을이용한가져오기 II 모듈의도움말보기및정의된객체보기 import math help(math) dir(math) 함수에대한도움말 help(bin) 박창이 ( 서울시립대학교통계학과 ) 3 장함수 16 / 20

디버깅 텍스트에디터에서스크립트작성시들여쓰기등으로인한오류를 피하기위해서탭대신공백을사용하는것이좋음 실행하는코드와눈으로보고있는코드가동일한지항상주의해야함 박창이 ( 서울시립대학교통계학과 ) 3 장함수 17 / 20

변수의범위 I 함수에서전역변수에접근은가능하지만수정은안됨 >>> def func1(): print(x) >>> def func2(): x += 1 >>> x = 4 >>> func1() 4 >>> func2() Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> func2() File "<pyshell#39>", line 2, in func2 x += 1 UnboundLocalError: local variable x referenced before assignment 박창이 ( 서울시립대학교통계학과 ) 3 장함수 18 / 20

변수의범위 II 함수에서 global문을사용하면수정가능 >>> def func2(): global x x += 1 >>> x = 4 >>> func2() >>> x 5 박창이 ( 서울시립대학교통계학과 ) 3 장함수 19 / 20

재귀함수 자기자신을호출하는함수를재귀함수라함계승함수 >>> def factorial(n): if n == 1: return 1 return n * factorial(n-1) >>> factorial(5) 120 박창이 ( 서울시립대학교통계학과 ) 3 장함수 20 / 20