고등학교 정보교과서 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
'정보교과서' 카테고리의 다른 글
[고등학교 정보교과서] 3. 문제 해결과 프로그래밍 평가하기 풀이 - 씨마스 (0) | 2024.04.25 |
---|---|
[고등학교 정보교과서] 3-3-6. 함수 #3 - 씨마스 (0) | 2024.04.24 |
[고등학교 정보교과서] 3-3-6. 함수 #1 - 씨마스 (0) | 2024.04.20 |
[고등학교 정보교과서] 3-3-5. 배열 #2 - 씨마스 (1) | 2024.04.19 |
[고등학교 정보교과서] 3-3-5. 배열 #1 - 씨마스 (0) | 2024.04.18 |