본문 바로가기

정보교과서

[고등학교 정보교과서] 3-3-6. 함수 #2 - 씨마스

고등학교 정보교과서 3. 문제 해결과 프로그래밍 (3) 프로그래밍 Programming ⑥ 함수 function #2 - 씨마스

고등학교 정보교과서 3. 문제 해결과 프로그래밍 (3) 프로그래밍 Programming ⑥ 함수 Function #2 - 씨마스

 


 

변수 사용 범위

변수는 정의한 위치에 따라 사용 범위가 달라집니다.

변수를 함수 내에서 정의하였다면 함수 내에서만 사용할 수 있는 지역변수이고,

함수 외부에서 정의하였다면 프로그램 전체에서 사용할 수 있는 전역변수입니다.

함수 내에서 전역변수는 global 키워드로 정의할 수 있습니다.

지역변수와 전역변수는 저장 위치가 다르므로 전역변수와 동일한 이름의 지역변수를 정의하여도 값이 변하지 않습니다.

 

팩토리얼 계산하기

# 팩토리얼 합 구하기

def fact(n) :
    global sum
    f = 1

    for k in range(1, n + 1) :
        f *= k

    sum += f

sum = 0
for i in range(1, 6) :
    fact(i)

print(f'합 : {sum}')

 


 

표준 라이브러리

파이썬은 유용한 함수들을 모아놓은 라이브러리가 풍부하여 활용하기 좋습니다.

내장함수

특정 모듈을 import 하지 않아도 사용이 가능합니다.

모듈 Module
함수들을 성격 또는 특성에 맞게 분류하여 모아놓은 것
시퀀스
순서 있게 나열된 자료형(문자열, 리스트, 튜플)
함수명 설명 예시
abs(n) 숫자 n의 절댓값 반환 abs(-30)
chr(n)
ord(ch)
아스키코드인 숫자 n에 대한 문자 반환
문자 ch의 아스키코드 반환
chr(192)
ord(A)
divmod(m, n) m을 n으로 나눈 몫과 나머지 튜플로 반환 divmod(100, 3)
int(n)
float(n)
str(n)
n의 자료형을 정수, 실수, 문자열로 변환 int('100')
float('3.14')
str(3)
len(seq) 시퀀스 seq의 요소 개수 반환 len([1, 3, 5])
list(seq) 시퀀스 seq를 리스트로 변환  
min(seq)
max(seq)
시퀀스 seq의 요소 중 최솟값, 최댓값 반환 min([1, 3, 5])
max([1, 3, 5])
pow(m, n) m의 n제곱 계산 pow(3, 5)
sum(list) 리스트 list의 요소의 합 반환 list([1, 3, 5, 7, 9])
round(f, n) 실수 f을 n자릿수로 반올림하여 반환 round(3.1415, 2)

 

외장함수

import 키워드로 모듈을 불러와 사용할 수 있는 함수입니다.

# 1
import 모듈명

# 2
from 모듈명 import *
모듈 함수명 설명 예시
random random() 0~1 사이의 난수 생성 random()
randint(m, n) m~n 사이의 정수 난수 생성 randint(0, 100)
choice(seq) 시퀀스 seq의 요소 중 하나 랜덤으로 선택 choice([1, 3, 5])
shuffle(seq) 시퀀스 seq의 요소들의 순서를 무작위로 섞음 shuffle([1, 3, 5, 7, 9])
math sqrt(n) n의 제곱근 반환 sqrt(4)
sin(n)
cos(n)
tan(n)
각도 n의 sin, cos, tan 반환 sin(45)
cos(45)
tan(45)
itertools permutations(seq[, r]) 시퀀스 seq에서 r개를 취하는 순열 반환 permutations([1, 3, 5, 7, 9], 3)
combinations(seq[, r]) 시퀀스 seq에서 r개를 취하는 조합 반환 combinations([1, 3, 5, 7, 9], 2)

 

합계, 평균 구하는 프로그램

합계, 평균 구하는 프로그램 실행결과

전체 코드 보기

더보기
# 합계, 평균 구하는 프로그램
print('============ 합계, 평균 구하는 프로그램 ============')

nums = [int(n) for n in input('숫자들을 공백으로 구분하여 입력하세요 > ').split()]

numsSum = sum(nums)
numsLen = len(nums)
avg = round(numsSum / numsLen, 2)

print(f'합계 = {numsSum}')
print(f'평균 = {avg}')

 

가위바위보 게임 프로그램

가위바위보 게임 프로그램 실행결과

전체 코드 보기

더보기
# 가위바위보 게임 프로그램

from random import *

print('============ 가위바위보 게임 프로그램 ============')

kind = [' ', '가위', '바위', '보']
man = int(input('1 : 가위, 2 : 바위, 3 : 보 > '))
computer = choice([1, 2, 3])

print(f'사람 : {kind[man]}, 컴퓨터 : {kind[computer]}')

if man == computer :
    print('비겼습니다.')
elif (man - computer == -2) or (man - computer == 1) :
    print('사람이 이겼습니다.')
else :
    print('컴퓨터가 이겼습니다.')

 

728x90