개인 공부 목적 - 참고만 하시는걸 추천드립니다.
타입캐스팅 연산자, %연산자 활용
- 실수를 입력받아 정수부분 1째 자리수와 소수부분 1째 자 리수를 각각 출력하시오.
- (실행예)
- 실수 입력 : 23.14 정수 첫째 자리:3 소수 첫째 자리 : 1
- (Hint) 23.14 ⇒ 23 (정수로 타입캐스팅) ⇒ 3 (%10) 23.14 ⇒ 231.4 ⇒ 231 ⇒ 1 (%10)
n = float(input("실수 입력 : "))
print("정수 첫째 짜리 : ", int(n)%10)
print("소수 첫째 자리 : ", int(n*10)%10)
윤년 체크
- 년도를 입력받아, 날짜수 출력
- 윤년 ⇒ 366일
- 평년 ⇒ 365일
- 힌트) 윤년 조건
-
- 4의 배수이면서, 100의 배수가 아님
-
- 400의 배수
-
year = int(input("년 입력 : "))
if year%4 == 0 and year%100 != 0 or year%400 == 0:
print("윤년 ==> 366일")
else:
print("평년 ==> 365일")
선택문 활용 2 : 반올림
- 실수를 입력받아 소수 첫째자리에서 반올림해서 정수로 반올림 변환해 출력
- (실행 예)반올림결과 : 2반올림결과 : -2
- 실수 입력 : -1.5
- 실수 입력 : 1.5
- (Hint)
def round_func(number):
num_upper = number * 10
if number > 0:
if num_upper % 10 >= 5:
return int(number) + 1
else:
return int(number)
else:
if num_upper % 10 <= 5:
return int(number) - 1
else:
return int(number)
fl = float(input("실수 입력 : "))
print(round_func(fl))
평균
- 산술평균, 기하평균, 조화평균 출력
- 산술평균 = (a+b) / 2
- 기하평균 = (a*b)**0.5
- 조화평균 = 2ab/(a+b)
a, b = map(int, (input("숫자 입력 : ")).split())
print("산술평균 : ", (a+b)/2)
print("기하평균 : ", (a*b)**0.5)
print("조화평균 : ", 2*a*b/(a+b))
근의 공식
- 사용자로부터 이차방정식의 계수 a(≠0), b, c를 입력 받아 근을 출력
- (실행 예)중근 : 1두 실근 : -1, 3근이 없음
- 이차방정식 계수 입력 : 1 1 1
- 이차방정식 계수 입력 : 1 -2 -3
- 이차방정식 계수 입력 : 1 -2 1
- (힌트) 근의 공식
import math
def func(a, b, c):
# 판별식 계산
discriminant = b**2 - 4*a*c
# 판별식이 0보다 크거나 같은 경우에만 해를 계산
if discriminant > 0:
root1 = (-b + math.sqrt(discriminant)) / (2*a)
root2 = (-b - math.sqrt(discriminant)) / (2*a)
return f"두 실근 : {root1}, {root2}"
elif discriminant == 0:
root = -b / (2*a)
return f"중근 : {root}"
else:
return "근이 없음"
a, b, c = map(float, input("이차방정식 계수 입력 : ").split())
print(func(a, b, c))
중간값
- 세 정수를 입력받아, 중간값 출력
- 예) 세 정수 입력 : 3 9 6
- 중간값 = 6
def func(a, b, c):
if a > b and a < c or a < b and a > c:
return a
elif b > a and b < c or b < a and b > c:
return b
else:
return c
a, b, c = map(int, (input("세 정수 입력 : ")).split())
print(func(a, b, c))
정렬
- 세 정수를 입력받아, 크기 순서대로 출력
- 힌트) 버블 정렬
- 예 ) 세 정수 입력 : 3 9 6
- 오름차순 정렬 : 3 6 9
def bubble_sort(numbers):
for i in range(len(numbers)):
for j in range(len(numbers) - 1):
if numbers[j] > numbers[j + 1]: # 현재 요소가 다음 요소보다 크다면
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # 두 요소의 위치를 바꿈
return numbers
numbers = list(map(int, input("세 정수 입력 : ").split()))
sorted_numbers = bubble_sort(numbers)
print("정렬된 숫자 : ", sorted_numbers)
개인 공부 목적 - 참고만 하시는걸 추천드립니다.
타입캐스팅 연산자, %연산자 활용
- 실수를 입력받아 정수부분 1째 자리수와 소수부분 1째 자 리수를 각각 출력하시오.
- (실행예)
- 실수 입력 : 23.14 정수 첫째 자리:3 소수 첫째 자리 : 1
- (Hint) 23.14 ⇒ 23 (정수로 타입캐스팅) ⇒ 3 (%10) 23.14 ⇒ 231.4 ⇒ 231 ⇒ 1 (%10)
n = float(input("실수 입력 : "))
print("정수 첫째 짜리 : ", int(n)%10)
print("소수 첫째 자리 : ", int(n*10)%10)
윤년 체크
- 년도를 입력받아, 날짜수 출력
- 윤년 ⇒ 366일
- 평년 ⇒ 365일
- 힌트) 윤년 조건
-
- 4의 배수이면서, 100의 배수가 아님
-
- 400의 배수
-
year = int(input("년 입력 : "))
if year%4 == 0 and year%100 != 0 or year%400 == 0:
print("윤년 ==> 366일")
else:
print("평년 ==> 365일")
선택문 활용 2 : 반올림
- 실수를 입력받아 소수 첫째자리에서 반올림해서 정수로 반올림 변환해 출력
- (실행 예)반올림결과 : 2반올림결과 : -2
- 실수 입력 : -1.5
- 실수 입력 : 1.5
- (Hint)
def round_func(number):
num_upper = number * 10
if number > 0:
if num_upper % 10 >= 5:
return int(number) + 1
else:
return int(number)
else:
if num_upper % 10 <= 5:
return int(number) - 1
else:
return int(number)
fl = float(input("실수 입력 : "))
print(round_func(fl))
평균
- 산술평균, 기하평균, 조화평균 출력
- 산술평균 = (a+b) / 2
- 기하평균 = (a*b)**0.5
- 조화평균 = 2ab/(a+b)
a, b = map(int, (input("숫자 입력 : ")).split())
print("산술평균 : ", (a+b)/2)
print("기하평균 : ", (a*b)**0.5)
print("조화평균 : ", 2*a*b/(a+b))
근의 공식
- 사용자로부터 이차방정식의 계수 a(≠0), b, c를 입력 받아 근을 출력
- (실행 예)중근 : 1두 실근 : -1, 3근이 없음
- 이차방정식 계수 입력 : 1 1 1
- 이차방정식 계수 입력 : 1 -2 -3
- 이차방정식 계수 입력 : 1 -2 1
- (힌트) 근의 공식
import math
def func(a, b, c):
# 판별식 계산
discriminant = b**2 - 4*a*c
# 판별식이 0보다 크거나 같은 경우에만 해를 계산
if discriminant > 0:
root1 = (-b + math.sqrt(discriminant)) / (2*a)
root2 = (-b - math.sqrt(discriminant)) / (2*a)
return f"두 실근 : {root1}, {root2}"
elif discriminant == 0:
root = -b / (2*a)
return f"중근 : {root}"
else:
return "근이 없음"
a, b, c = map(float, input("이차방정식 계수 입력 : ").split())
print(func(a, b, c))
중간값
- 세 정수를 입력받아, 중간값 출력
- 예) 세 정수 입력 : 3 9 6
- 중간값 = 6
def func(a, b, c):
if a > b and a < c or a < b and a > c:
return a
elif b > a and b < c or b < a and b > c:
return b
else:
return c
a, b, c = map(int, (input("세 정수 입력 : ")).split())
print(func(a, b, c))
정렬
- 세 정수를 입력받아, 크기 순서대로 출력
- 힌트) 버블 정렬
- 예 ) 세 정수 입력 : 3 9 6
- 오름차순 정렬 : 3 6 9
def bubble_sort(numbers):
for i in range(len(numbers)):
for j in range(len(numbers) - 1):
if numbers[j] > numbers[j + 1]: # 현재 요소가 다음 요소보다 크다면
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # 두 요소의 위치를 바꿈
return numbers
numbers = list(map(int, input("세 정수 입력 : ").split()))
sorted_numbers = bubble_sort(numbers)
print("정렬된 숫자 : ", sorted_numbers)