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

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

by J-2n 2020. 8. 2.

현재까지의 벼락치기 마지막 네번째 시간이다.

내 소중한 주말을 잃었다. 앞으로는 제발 밀리지말자 내자신아아악!! 

그리고 파이썬 강의는 이제 점점 시간이 갈수록 집중을 해서 들어야지 따라갈 수 있는 정도가 되었다. 하지만 핸드폰으로 강의를 시청할 때 화질이 좋지않아 코드를 따라갈때 화가 난다..

파이썬 과정을 진행해보며 나에게 치명적으로 안좋은점을 발견했다. 이클립스같은 자동완성 툴에 익숙해져 있다는 것이다. 강의를 들으며 따라서 쓰지만 오류도 발생했고 시간구하기에서 왜 지금은 오후 1시인데 4시로 출력되는지 오류를 잡지 못했다.

이건 강의 다 듣고 오류를 잡아보도록 해야겠다.


파이썬 내장 함수

- 파이썬 인터프로티에서 기본적으로 지원


# 최댓값을 반환한다.

>>> max(2, 3, 4) 

# 최솟값을 반환한다.

>>> min(2, 3, 4) 

# 가장 가까운 정수로 근사한다.(반올림) 정가운데에 있으면 짝수로 나온다. 3.5-> 3 2.5 -> 2

>>>round(3.51)

# 절댓값을 반환한다.

>>>abs(-3)

# 2의 3승과 같다.

>>>pow(2, 3)


수학함수

# x의 절대값을 실수로 반환

>>> fabs(x)

# x의 가장 가까운 정수로 올림하여 반환

>>> ceil(x)

# x의 가장 가까운 정수로 버림하여 반환

>>> floor(x)

# x의 지수 함수 값을 반환한다.

>>> exp(x)

# x의 자연로그 값을 반환한다.

>>> log(x)

# 특정 밑을 갖는 x이 로그 값을 반환한다.

>>> log(x, base)

# x의 제곱근을 반환한다.

>>>sqrt(x)

# x의 사인 값을 반환한다.

>>> sin(x)

# 사인의 역함수에 대한 라디안 각도를 반환한다.

>>> asin(x)

# x의 코사인 값을 반환한다.

>>> cos(x)

# 코인 역함수에 대한 라디안 각도를 반환한다.

>>> acos(x)

# x의 탄젠트 값을 반환한다.

>>> tan(x)

# 라디안 각도 x를 도 단위로 변환한다.

>>> degrees(x)

#도 x를 라디안 각도 단위로 변환한다.

>>> radians(x)


삼각형의 면적

- 주어진 삼각형의 세 꼭지점에 대한 삼각형의 내각 A, B, C를 구하시오.

A = acos((a * a - b * b - c * c) / (-2 * b * c))

B = acos((b * b - a * a - c * c) / (-2 * a * c))

C = acos((c * c - b * b - a * a) / (-2 * a * b))


import math


x1, y1, x2, y2, x3, y3 = eval(input("세 점을 입력하시오 : "))


a = math.sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3))

b = math.sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3))

c = math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))

A = math.degrees(math.acos((a * a - b * b - c * c) / (-2 * b * c)))

B = math.degrees(math.acos((b * b - a * a - c * c) / (-2 * a * c)))

C = math.degrees(math.acos((c * c - b * b - a * a) / (-2 * a * b)))


print("세 내각은 ", round(A * 100) / 100.0

      , round(B * 100) / 100.0, round(C * 100) / 100.0, "입니다")


숫자 서식화

>>> amount = 12618985

>>> interestRate = 0.0013

>>> interest = amount * interestRate

# 소수점 밑에 2자리까지 출력하라

>>>print("이자는", format(interest, ".2f"), "입니다.")


- format 함수

실수 서식화

   10   .     2        f

필드폭 . 정밀도 변환코드


백분율 서식화

print(format(0.53457, "10.2%"))   -> □□□□53.46%

print(format(0.0033923, "10.2%"))   -> □□□□□0.34%


서식정렬

print(format(57.467567, "10.2f"))   -> □□□□□57.47

print(format(57.467567, "<10.2f"))   -> 57.57


정수 서식화

print(format(59832, "10d"))   -> □□□□□59832

print(format(59832, "<10d"))   -> 59832


간단한 도형 그리기

import turtle


#펜의 두께

turtle.pensize(3)


turtle.penup()

turtle.goto(-200, -50)

turtle.pendown()

# 삼각형 그리기

turtle.circle(40, steps = 3)


turtle.penup()

turtle.goto(-100, -50)

turtle.pendown()

# 사각형 그리기

turtle.circle(40, steps = 4)


turtle.penup()

turtle.goto(0, -50)

turtle.pendown()

# 오각형 그리기

turtle.circle(40, steps = 5)


turtle.penup()

turtle.goto(100, -50)

turtle.pendown()

# 육각형 그리기

turtle.circle(40, steps = 6)


turtle.penup()

turtle.goto(200, -50)

turtle.pendown()

# 원 그리기

turtle.circle(40)


turtle.done()


-결과


실습하기

- 대권거리

두 도시의 위치를 (x1, y1), (x2, y2)라고 할 때, 두 도시의 대권거리(d)를 구하시오.

공식

d = radius *

arccos(sin(x1) * sin(x2) + cos(x1) * cos(x2) * cos(y1- y2)


import math


x1, y1 = eval(input("첫번째 도시의 위도와 경도를 입력하세요 : "))

x2, y2 = eval(input("두번째 도시의 위도와 경도를 입력하세요 : "))


# 대권거리

# 지구의 반지름 약 6400

d = 6400 * math.acos(math.sin(math.radians(x1)) * \

           math.sin(math.radians(x2)) + math.cos(math.radians(x1)) * \

           math.cos(math.radians(x2)) * math.cos(math.radians(y1 - y2)))


print("두 도시의 대권거리는 ", d, "km 입니다")


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

1. 파이썬은 인터프리터에서 수학적 함수 abs, max, min, pow와 round를 제공한다.

2. math 모듈은 함수 fabs, cell, floor, exp, log, sqrtr, sin, asin, cos, acos, tan, degrees, radians과 pi, e 상수를 제공한다.

3. format 함수와 변환 코드를 사용하여 숫자값을 서식화 할 수 있다. 변환코드 'width.precisiontype'에서 width는 숫자의 전체 길이, precision은 소숫점 이하의 자릿수, type은 실수, 정수, 과학적 표기법, 백분율 등 숫자의 타입을 결정한다.

4. turtle 모듈의 그리기 상태 제어 메소를 통해 이동 시, 선분 또는 도형이 그려지는 지 결정할 수 있으며, 이동제어 메소드를 사용하여 다양한 형태의 선과 도형을 그릴 수 있다. 


100%를 향해