728x90
math 모듈
: 수학적 계산 문제를 해결하기 위한 수학 함수 및 상수의 집합
-> C언어 표준에 정의된 수학적 계산 함수를 내장
-> 파이, e와 같은 상수 제공
math 모듈 멤버
random 모듈
-난수 : 특정한 배열 순서나 규칙적인 의미가 없는, 임의의 수를 의미
-난수 관련된 생성 기능을 제공하는 모듈
-> 특정 범위의 난수를 발생
*번호들 사이에는 규칙이 없으나 프로그램을 실행할 때마다 동일한 값들이 도출되는 난수 발생
-> 같은 번호가 계속 나오면 시드를 바꾸어주어야 한다.
random 모듈 멤버
*가위-바위-보 게임, 로또 추첨 프로그램, 스무고개 프로그램
-가위-바위-보 게임
-로또 추첨 프로그램
코드:
import random
#input을 통해 들어온 긴 문자열을 콤마(,) 기준으로 분리
#split(분할 기준되는 문자) : 여기서는 콤마와 스페이스 기준으로 분리
#현재 guess_str에는 숫자로 된 문자들이 들어있다.
guess_str = input("1~45 번호 6개를 쉼표로 분리하여 입력하세요: ").split(", ")
guess_list = list()
#guess_str의 값들을 하나하나 정수로 변환하여 guess_list에 하나씩 추가(append)한다.
#숫자로 된 문자열을 하나씩 읽어 int형으로 받은 뒤 guess_list에 저장
for i in guess_str:
guess_list.append(int(i))
#1부터 45까지의 값 중 6개의 값을 랜덤으로 추출
lotto_list = random.sample(range(1, 46, 1), 6)
print("예상 번호는", guess_list, "입니다.")
print("추첨 번호는", lotto_list, "입니다.")
hit_count = 0;
#비교연산자로 사용된 in
for guess in guess_list:
if guess in lotto_list:
hit_count = hit_count + 1
print("축하합니다" + str(hit_count) + "개 맞혔습니다.")
출력:
-20번의 기회 안에 1 ~ 1000 사이의 숫자를 맞히는 스무고개 프로그램을 작성하시오.
코드:
import random
#정수를 무작위로 추출
hit_number = random.randint(1, 1001)
#1~20까지 들어있는 리스트를 생성하여 현재 몇 번째 시도인지를 출력할 예정
guess_count_list = range(1, 21, 1)
passfail = False
for guess_count in guess_count_list :
guess = int(input("숫자를 맞혀보세요("+str(guess_count)+"번째 시도): "))
if hit_number == guess:
passfail = True
break;
elif hit_number > guess:
print(str("guess") + "보다 큽니다.", end="")
else:
print(str("guess") + "보다 작습니다.", end="")
if passfail == True:
print("맞췄습니다. 축하합니다")
else:
print("모든 기회를 다 사용하셨습니다. 다음에 다시 도전하세요")
출력:
삼각형 넓이 계산 프로그램
: 두 변의 길이 a, b와 끼인각 a인 삼각형의 넓이를 구하는 프로그램을 작성하시오.
코드:
import math
a, b = 10, 20
#60도를 호도법으로 바꾼 값의 sin값 산출
area = 1 / 2 * a * b * math.sin(math.radians(60))
print(area)
출력:
또 다른 코드:
import math
#모듈 속 함수를 사용하는 또다른 방법
#Line5처럼 특정 함수 몇 가지만 부분적으로 호출하게 되면 해당 함수는 모듈명.을 쓰지 않고 직접 사용 가능
from math import sin
a, b = 10, 20
#60도를 호도법으로 바꾼 값의 sin값 산출
area = 1 / 2 * a * b * math.sin(math.radians(60))
print(area)
time모듈
: 에포크 시간을 얻어 다양한 형식으로 표시하는 기능 제공
time 모듈 멤버
소수 찾기 프로그램
: 1 ~ 1000 사이에 소수를 찾고 실행 시간을 출력하는 프로그램을 작성하시오.
import time
#1970.1.1.이후로 경과된 시점을 초 단위로 환산
start_time = time.time()
def is_prime(x):
for i in range(2, x):
#i로 나누었을 때 나누어 떨어지면(나머지가 0이면) 소수가 아니므로 False 반환
if x % i == 0:
return False
return True
prime_count = 0
for i in range(2, 5001):
if is_prime(i):
prime_count = prime_count + 1
print(i, end = ", ")
end_time = time.time()
print(end_time - start_time, "초 실행했습니다.")
출력:
728x90
'방통대 > 파이썬' 카테고리의 다른 글
[파이썬] 12-1 파일 (0) | 2024.05.09 |
---|---|
[파이썬] 11강. 모듈 연습 문제 (0) | 2024.05.02 |
[파이썬] 11-1 모듈 (2) | 2024.05.02 |
[파이썬] 10강. 객체지향 연습 문제 (0) | 2024.04.25 |
[파이썬] 10-3 객체지향의 활용 (2) | 2024.04.25 |