본문 바로가기
우당탕탕 학교생활/_방송통신대학교

방송통신대학교 프라임칼리지 파이썬(Python) 열번째 시간 리뷰

by J-2n 2020. 8. 27.

이제 방송통신대학교도 개강을 했고 이 프라임칼리지 파이썬 과정은 곧 끝이나게 된다.

요번에도 코로나19 여파로 모든 출석은 과제로 바뀔테니

과제 폭탄 예약이다.. 이거라도 얼른 끝내야겠다.


함수

특정한 작업을 수행하는 명령문의 집합


구문형식

def 함수이름(매개변수 리스트) :

#함수 몸체


예시

def sum(i1, i2) :                                        - 함수헤더

result = 0                                          - 함수몸체 시작

for i in range(i1, i2+1):

result += i

return result


함수 호출

구문형식

함수이름(실 매개변수 리스트)


예시

1부터 10까지의 합?

result sum(1, 10)

print ("1부터 10까지의 합은", result, "입니다.")


큰 수 찾기 문제

입력한 두 수 중 큰 수를 출력하는 프로그램을 작성하시오.


소스 코드

def max(num1, num2) : #두 수 중 큰 수를 반환한다.

    if num1 > num2 :

        result = num1

    else:

        result = num2

    return result


def main() :

    n1, n2 = eval(input("두 수를 입력하세요 : ")) #두 수를 입력 받음

    n3 = max(n1, n2) #max 함수를 호출한다.

    print(n1, "와/과", n2, "중에서 큰 수는 ", n3, "입니다.")


main() #main 함수를 호출한다.


성적 산출하기

점수를 입력받고 성적으로 출력하는 프로그램을 작성하시오.


소스 코드

def printGrade(score) :

    if score >=90.0 :

        print('A')

    elif score >= 80.0 :

        print('B')

    elif score >= 70.0 :

        print('C')

    elif score >= 60.0 :

        print('D')

    else :

        print('F')


def main() :

    score = eval(input("점수를 입력하세요 : "))

    print("성적은 ", end="")

    printGrade(score)

    print("입니다.")


main()


스코프

프로그램에서 변수가 참조될 수 있는 영역

- 전역변수 : 모든 함수에서 접근 가능

- 지역변수 : 함수 내부에서만 접근 가능


소스 코드

globalVar = 1

def f1() :

    localVar = 2

    print(globalVar)

    print(localVar)


f1()

print(globalVar)

print(localVar)  # 오류발생 - 지역변수수


기본 인자

함수가 인자 없이 호출될 때 기본값이 전달되는 인자


여러 도형 그리기

소스 코드 1 - function.py

import turtle


def drawLine(x1, y1, x2, y2):

    turtle.penup()

    turtle.goto(x1, y1)

    turtle.pendown()

    turtle.goto(x2, y2)


def writeText(s, x, y):

    turtle.penup()

    turtle.goto(x, y)

    turtle.pendown()

    turtle.write(s)


def drawPoint(x, y):

    turtle.penup()

    turtle.goto(x, y)

    turtle.pendown()

    turtle.begin_fill()

    turtle.circle(3)

    turtle.end_fill()


def drawCircle(x, y, radius):

    turtle.penup()

    turtle.goto(x, y - radius)

    turtle.pendown()

    turtle.circle(radius)


def drawRectangle(x, y, width, height):

    turtle.penup()

    turtle.goto(x + width / 2, y + height / 2)

    turtle.pendown()

    turtle.right(90)

    turtle.forward(height)

    turtle.right(90)

    turtle.forward(width)

    turtle.right(90)

    turtle.forward(height)

    turtle.right(90)

    turtle.forward(width)


소스 코드2 - main.py

import turtle

from function import *

# 이 파일에서 모든 파일을 읽어와라 (*)


drawLine(-50, -50, 50, 50)


writeText("유용한 Turtle 함수 테스트", -50, -50)


drawPoint(0,0)


drawCircle(0, 0, 80)


drawRectangle(0, 0, 60, 40)


turtle.hideturtle()

turtle.done()


실행 결과


정리하기 (출처 : 한국방송통신대학교 프라임칼리지)

1. 프로그램을 모듈화하여 재사용 가능하도록 만드는 것은 소프트웨어 공학의 주요 목표 중에 하나이다. 함수(function)는 이러한 목표를 이루는 데 도움을 준다.

2. 함수 헤더(function header) 는 def 키워드로 시작하고 그 다음에 함수의 이름과 매개변수(parameter)가 나오고 콜론으로 끝난다.

3. 매개변수는 선택 사항이다. 즉, 함수가 반드시 매개변수를 가져야 하는 것은 아니다.

4. 값을 반환하지 않는 함수를 void 혹은 None 함수라 부른다.

5. return 명령문은 함수를 종료하고 함수의 호출자로 되돌아가기 위해 void 함수에서도 사용될 수 있다.

6. 함수로 전달되는 인자(agument)는 함수 헤더의 매개변수와 동일한 개수, 타입, 순서를 가져야 한다.

7. 프로그램이 함수를 호출할 때, 호출된 함수로 프로그램 제어가 전이된다. 호출된 함수는 return 명령문이 수행되거나 함수의 마지막 명령문이 수행될 때 제어를 호출자로 반환한다.

8. 값-반환 함수는 파이썬에서 명령문처럼 호출될 수도 있다. 이 경우, 함수의 반환값은 무시된다.

9. 함수의 인자는 위치 인자(positional argument) 혹은 키워드 인자(keyword argument)로 전달될 수 있다.

10. 매개변수를 가진 함수가 호출될 때, 인자의 참조값이 매개변수로 전달된다. 이것을 프로그래밍 용어로 값에 의한 전달(pass-by-value)이라 한다.

11. 함수 내부에서 생성된 변수를 지역변수(local variable)라 부른다. 지역변수의 유효범위는 그 변수의 생성지점부터 함수가 반환될 때까지이다. 변수는 그 변수가 사용되기 이전에 반드시 생성되어야 한다.

12. 전역변수(global variable)는 모든 함수의 외부에 생성되며 전역변수의 스코프 내에 있는 모든 함수에서 접근 가능하다.


100%를 향해