59doit

[Python] 함수사용 본문

Programming/Python(파이썬)

[Python] 함수사용

yul_S2 2022. 11. 1. 12:38
반응형
dataset = list(range(1,7))
print(dataset)
# <출력> [1, 2, 3, 4, 5, 6]

print('len=',len(dataset))  # <출력> len= 6
print('sum=',sum(dataset))  # <출력> sum= 21
print('max=',max(dataset))  # <출력> max= 6
print('min=',min(dataset))  # <출력> min= 1

 

import 함수 ; 외부 모듈을 포함시켜야 사용 할 수 있는 함수

1) 모듈명.함수()
수학/통계 함수 statistics모듈을 import 해야한다

즉, 평균,중위수는 내장함수가 아니기 때문에 모듈을 import해야한다

dataset = list(range(1,7))
print(dataset)
# <출력> [1, 2, 3, 4, 5, 6]
import statistics   
print('평균=',statistics.mean(dataset))      # <출력> 평균= 3.5
print('중위수=',statistics.median(dataset))  # <출력> 중위수= 3.5

 

 

2) .함수()
statistics 중에서 variance,stdev 함수만 가져온다는뜻
분산:variance, 표준편차:stdev

dataset = list(range(1,7))
print(dataset)
# <출력> [1, 2, 3, 4, 5, 6]
from statistics import variance, stdev
print('표본 분산=',variance(dataset))      # <출력> 표본 분산= 3.5
print('표본 표준편차', stdev(dataset))      # <출력> 표본 표준편차 1.8708286933869707

 

builtins 함수 ; builtins 안에 포함되어있는 함수

모듈 내장함수와 내장클래스

dir 내장함수를 통해 builtins 내장함수 목록보기

import builtins
dir(builtins)  #dir 내장함수를 통해 builtins 내장함수 목록보기

abs(-36)     # 절댓값 함수 36
all()        # 모든 요소가 True 일때 True 반환
any()        # 하나 이상의 요소가 True 일때 True 반환
dict()       # 사전형 자료구조형으로 반환
dir()        #변수,내장함수,내장클래스 목록반환
enumerate()  # 열거형 자료 -> index 와 값을 같이 반환함 -> for문에서 많이쓰임
eval()       # 문자열 수식을 계산 가능한 수식으로 반환
float()      # 실수형으로 변환하여 반환
id()         #객체의 주소반환
input([])    # 키보드로 입력한 문자열을 반환
int()        # 정수형으로 반환
len()        # 전체 원소의 길이 반환
list()       # 자료형으로 반환
str()        #문자형으로 변환
tuple()      #튜플형으로 변환
open()       # 파일읽기 쓰기
pow(x,y)     # x를 y 제곱
range(n)     # 0 ~ n-1까지의 정수 반환
sorted()     # 반복가능한 원소들을 대상으로 정렬   # .sort : 오름차순 정렬 / .sort(reverse=true) : 내림차순정렬
zip()        #원소를 묶어서 반환 > tuple로 반환
bin()        # 10진수 -> 2진수
hex()        # 10진수 -> 16진수
oct()        # 10진수 -> 8진수
round(2.5)     # 반올림

 

 

def 사용자정의함수

def userfun1() :
    print('인수가 없는함수')
    print('userfun1')
userfun1()     
# <출력> 
# 인수가 없는함수
# userfun1

def userfun2(x,y):
    print('userfun2')
    z = y-x
    print('z=',z)
userfun2(49,55)
# <출력> z= 6  

 

return이 있는 함수★★★

def userfun3(x,y) :
    print('userfun3')
    a = x+y
    b = x-y
    c = x*y
    d = x/y
    return a,b,c,d
x=int(input("x 입력 :"))
y=int(input("y 입력 :"))

x 입력 : 

>?

 

 

 

 

 

 

 

 

 

                  

from statistics import mean, variance   
from math import sqrt                  
dataset = [2,4,5,6,1,8]

산술평균

def Avg(data) :               #dataset의 산술평균(Avg)
    return Avg
print("산술평균=",Avg)
#<출력> 산술평균= <function Avg at 0x00000281FFE09160>

 

 

분산/표준편차

def Avg(data) :
    avg = mean(data)                     # 표준편차 공식에 쓰이기위해
    return avg
print("산술평균=",Avg(dataset))           # 평균=avg
# <출력> 산술평균= 4.333333333333333

def var_sd(data):                        # sd=표준편차, sqrt=루트, var=분산
    avg=Avg(data)                        # 위에서 구한 평균(산술평균) 가져옴
    diff = [(d-avg)**2 for d in data]    # 관측값에서 평균을 뺀 값을 제곱
    var = sum(diff)/ (len(data)-1)       # 분산 = 제곱하고, 그것을 모두 더한(sum(diff)) 후 전체 수로 나눠서 구한다. 분산 = /n-1
    sd=sqrt(var)                         # 표준편차(sd) ; 분산(var)을 제곱근(sqrt)한 것
    return var,sd

v,s=var_sd(dataset)
print('분산=',v)
print('표준편차=',s)
# <출력> 
# 분산= 6.666666666666666
# 표준편차= 2.581988897471611

 

 

피타고라스 불러오기  (a밑변)**2 * (b높이)**2 = c빗변**2

def pytha(s,t) :
    a = s**2 - t**2
    b = 2*s*t
    c = s**2 + t**2
    print(" ", a,b,c)
pytha(2,1)     # <출력> 3 4 5

 

 

 

 

난수의 확률 분포 기대확률

방법1 앞 뒤 난수 확률 분포 함수 정의

import random
def coin(n) :                     # coin(수)
    result = []                   # result 는 리스트
    for i in range(n) :           # 난수 n 범위안에 있는수 i에
        r = random.randint(0,1)   # 0,1를 random으로 뽑는다= r로 정의
        if(r==1) :
            result.append(1)      # r=1 이면 result 에 1 넣어라
        else :
            result.append(0)      # 그게 아니면 0을 result에 담아라
    return result
print(coin(10))
# <출력> [1, 0, 0, 1, 1, 0, 1, 1, 0, 0]

 

 

 

방법2 몬테카를로 시뮬레이션 함수 정의

def monCoin(n) :             # monCoin 으로 정의
    cnt = 0
    for i in range(n) :
        cnt += coin(1)[0]    # 위에서 불렸던 coin 리스트에서 1하나씩 첫번째 수를 cnt변수에 누적
    result = cnt /n          # 누적결과를 시행횟수 n으로 나눠서 result 변수에 저장
    return result

print(monCoin(1000000))

# <출력> 0.500135

 

 

 

반응형

'Programming > Python(파이썬)' 카테고리의 다른 글

[Python] inner_func  (0) 2022.11.02
[Python] 함수 사용 활용  (0) 2022.11.02
[Python] 자료구조  (0) 2022.11.01
[Python] 리스트내포  (0) 2022.10.31
[Python] 반복문 loop, random, for, range  (0) 2022.10.31
Comments