Notice
Recent Posts
Recent Comments
Link
관리 메뉴

왕초보 코딩 개발 일지 블로그

[2023.04.07] 파이썬 예제 풀이 (연산자&조건문) 본문

Python 공부/수업시간 예제 풀이

[2023.04.07] 파이썬 예제 풀이 (연산자&조건문)

아캔두우잇 2023. 4. 7. 15:05
반응형

 

1. a if 조건식 else b

조건식이 참일 경우 a, 거짓일 경우 b 를 출력한다.

 

2. 키보드로 두 개의 정수를 입력 받아 큰 수를 출력하시오

(같을 경우는 고려하지 않아도 됨)

a = int(input("정수입력 >> "))
b = int(input("정수입력 >> "))

print("a:", a) if a > b else print("b:", b)
정수입력 >> 3
정수입력 >> 10
b: 10

 

3. 두 개의 정수를 입력 받아 큰 수에서 작은 수를 뺀 결과값을 출력하시오.

a = int(input("정수입력 >> "))
b = int(input("정수입력 >> "))

print("두 수의 차 :", a-b) if a > b else print("두 수의 차 :", b-a)
정수입력 >> 5
정수입력 >> 10
두 수의 차 : 5

 

4. 키보드로 정수를 입력 받아 홀수인지 짝수인지 판별하시오. 

a = int(input("정수입력 >> "))
print(f"{a}는(은) 홀수입니다.") if a % 2 == 1 else print(f"{a}는(은) 짝수입니다.")
정수입력 >> 17
17는(은) 홀수입니다.

 

5. 변수 a와 b의 값을 치환하시오.

a = 3
b = 7

temp = a
a = b
b = temp

print("a : {}".format(a))
print("b : {}".format(b))
a : 7
b : 3

또는 아래와 같이 풀 수 있다.

a = 3
b = 7

a,b = b,a

print("a : {}".format(a))
print("b : {}".format(b))
a : 7
b : 3

 

6. 주민등록번호 뒷자리를 입력받아 여자인지 남자인지 판단

num = int(input("주민등록번호 뒷자리 입력 >> "))

if num // 1000000 == 1 or num // 1000000 == 3 :
    print("당신은 남자 입니다 ^^*")
else:
    print("당신은 여자 입니다 ^^7")
주민등록번호 뒷자리 입력 >> 3213013
당신은 남자 입니다 ^^*

 

7. 이름, 나이, 신용카드 소지 여부를 입력 받아 놀이동산 입장을 예약하는 프로그램을 만들어보세요.

성인 기본 요금은 35,000원이고 미성년자는 성인의 50% 가격이 기본요금 입니다. 

(조건 : 성인 기준 19살 이상, 신용카드 추가 할인율은 성인 30%, 미성년자 10%)

# 놀이동산 입장 예약 프로그램 만들기!
name = input("이름 입력 >> ")
age = int(input("나이 입력 >> "))
card = input("카드 소지 여부(소지, 미소지) >> ")
fee = 35000

# 성인일 경우
if age >= 19 :
    # 성인이면서 카드를 미소지했을 경우
    fee = fee
    # 성인이면서 카드를 소지했을 경우
    if card == "소지" :
        fee *= 0.7    # fee = fee * 0.7
        
# 미성년인 경우
else :
    # 미성년이면서 카드를 미소지했을 경우
    fee *= 0.5
    # 미성년이면서 카드를 소지했을 경우
    if card == "소지" :
        fee *= 0.9

print(f"{name}님은 입장료 {int(fee)}원에 예약되셨습니다.")
이름 입력 >> 지원
나이 입력 >> 17
카드 소지 여부(소지, 미소지) >> 소지
지원님은 입장료 15750원에 예약되셨습니다.

 

8. 대박이는 마스크를 대량 구매했다. 주변 친구에게 소분해서 나눠주려고 포장지를 사려한다. 포장지는 8개들이와 5개들이 2종류가 있다. 8개들이 포장지는 비싸기 때문에 반드시 전부 채워서 포장할 때만 사용하고 나머지 5개들이로 포장하려고 한다. 과연 포장지는 각각 몇 개가 필요할까?

<나의 풀이>

countOfMask = int(input("마스크 개수 입력 >> "))
a = countOfMask // 8            #꽉채운 8개들이 포장지
b = countOfMask % 8 // 5        #꽉채운 5개들이 포장지

if countOfMask % 8 == 0 :
    b = 0
    print(f"8개들이 포장지 개수 : {a}")
    print(f"5개들이 포장지 개수 : {b}")
else:
    if countOfMask % 8 % 5  > 0 :
        print(f"8개들이 포장지 개수 : {a}")
        print(f"5개들이 포장지 개수 : {b+1}")   #덜채운 5개들이 포장지 +1
    else :
        print(f"8개들이 포장지 개수 : {a}")
        print(f"5개들이 포장지 개수 : {b}")
마스크 개수 입력 >> 47
8개들이 포장지 개수 : 5
5개들이 포장지 개수 : 2
마스크 개수 입력 >> 45
8개들이 포장지 개수 : 5
5개들이 포장지 개수 : 1

 

<다른 풀이>

countOfMask = int(input("마스크 개수 입력 >> "))

mask8 = countOfMask // 8
mask5 = countOfMask % 8 // 5

if countOfMask % 8 % 5 >= 1:
    mask5 += 1

print(f"8개들이 포장지 개수 : {mask8}")
print(f"5개들이 포장지 개수 : {mask5}")

 

9. 변수 num1과 num2에 숫자를 입력 받아 크기를 비교하시오. 

num1 = int(input("첫 번째 정수 입력 >> "))
num2 = int(input("두 번째 정수 입력 >> "))

if num1 > num2:
    print("첫 번째 정수가 더 큽니다.")
elif num1 < num2:
    print("두 번째 정수가 더 큽니다.")
else:
    print("두 수가 똑같습니다.")
첫 번째 정수 입력 >> 1
두 번째 정수 입력 >> 2
두 번째 정수가 더 큽니다.

 

10. 변수 score에 점수를 입력 받아서 다음과 같이 학점을 부여하시오.

<나의 풀이>

score = int(input("점수 입력 >> "))

if score >= 90 :
    print(f"{score}점은 A학점입니다")
elif score >= 80 :
    print(f"{score}점은 B학점입니다")
elif score >= 70 :
    print(f"{score}점은 C학점입니다")
elif score >= 60 :
    print(f"{score}점은 D학점입니다")
else : 
    print(f"{score}점은 F학점입니다")
점수 입력 >> 100
100점은 A학점입니다

<간결한 풀이>

score = int(input("점수 입력 >> "))

if score >= 90 :
    grade = "A"
elif score >= 80 :
    grade = "B"
elif score >= 70 :
    grade = "C"
elif score >= 60 :
    grade = "D"
else : 
    grade = "F"
    
print(f"{score}점은 {grade}학점입니다")

 

11. x, y 좌표 값을 받아서 사분면을 출력하시오. (x, y는 모두 양수 혹은 음수 값을 가짐)

x = int(input("x값을 입력하세요 >> "))
y = int(input("y값을 입력하세요 >> "))

if x > 0 and y > 0 :
    q = 1
elif x > 0 and y < 0 :
    q = 4
elif x < 0 and y > 0 :
    q = 2
else :
    q = 3


print(f"좌표({x},{y})는 {q}사분면 입니다.")
x값을 입력하세요 >> 12
y값을 입력하세요 >> -5
좌표(12,-5)는 4사분면 입니다.

 

12. 사용자의 나이를 입력받아 버스 요금을 계산하는 프로그램을 작성하시오.

   버스 기본 요금 : 1500원

   - 5살 미만 영유아는 기본요금의 50% 할인

   - 5살 이상 20살 미만 어린이, 청소년들에게는 기본요금의 25% 할인

   - 65세 이상 노인에게는 기본요금의 75% 할인

age = int(input("나이 입력 >> "))
BusFee = 1500


if age < 5  :
    BusFee *= 0.5
elif age < 20  : 
    BusFee *= 0.75
elif age >= 65  :
    BusFee *= 0.25
    
print(f"요금은 {int(BusFee)}원 입니다.")
나이 입력 >> 77
요금은 375원 입니다.

 

13. 자판기 프로그램 만들기 ;;;

print("="*46)
print("================----자판기----================")
print("="*46)
print("==","1.콜라","==","2.사이다","=="," 3.물","======insert===")
print("==--------==----------==-------======------===")
print("==   600  ==    800   ==  1000 ====== 000원===")
print("=====================================------===")
print("="*46)
print("==++++++++++++++++++++++++++++++++++++++++++==")
print("==++++++++++++++++++++++++++++++++++++++++++==")
print("==++++++++++++++++++++++++++++++++++++++++++==")
print("==+++++++++++++++            +++++++++++++++==")
print("==+++++++++++++++    SMHRD   +++++++++++++++==")
print("==+++++++++++++++            +++++++++++++++==")
print("==++++++++++++++++++++++++++++++++++++++++++==")
print("==++++++++++++++++++++++++++++++++++++++++++==")
print("="*46)
print("="*46)
print("  ===                                    ===  ")
print("  ===                                    ===  ")

def calculate_change(money):
    chw = money // 1000
    obw = money % 1000 // 500
    bw = money % 1000 % 500 // 100
    print(f"잔돈 >> 1000원 {chw}개, 500원 {obw}개, 100원 {bw}개")

money = int(input("inser coin >>"))
menu = int(input("메뉴 선택 >>"))

if menu == 1:
    if money < 600:
        print("돈을 더 넣어주세요")
    else:
        money -= 600
        calculate_change(money)
elif menu == 2:
    if money < 800:
        print("돈을 더 넣어주세요")
    else:
        money -= 800
        calculate_change(money)
elif menu == 3:
    if money < 1000:
        print("돈을 더 넣어주세요")
    else:
        money -= 1000
        calculate_change(money)
else :
        print("잘못된 메뉴")
==============================================
================----자판기----================
==============================================
== 1.콜라 == 2.사이다 ==  3.물 ======insert===
==--------==----------==-------======------===
==   600  ==    800   ==  1000 ====== 000원===
=====================================------===
==============================================
==++++++++++++++++++++++++++++++++++++++++++==
==++++++++++++++++++++++++++++++++++++++++++==
==++++++++++++++++++++++++++++++++++++++++++==
==+++++++++++++++            +++++++++++++++==
==+++++++++++++++    SMHRD   +++++++++++++++==
==+++++++++++++++            +++++++++++++++==
==++++++++++++++++++++++++++++++++++++++++++==
==++++++++++++++++++++++++++++++++++++++++++==
==============================================
==============================================
  ===                                    ===  
  ===                                    ===  

inser coin >>2200
메뉴 선택 >>1
잔돈 >> 1000원 1개, 500원 1개, 100원 1개

< 선생님 풀이>

# 자판기 실습~!
money = int(input("insert coin >> "))
menu = int(input("메뉴 선택 >> "))

# 넣은 돈이 600원 이상일 경우
if money >= 600 :
    # 1번 메뉴 선택
    if menu == 1 :
        money -= 600   # money = money - 600
    # 2번 메뉴 선택
    elif menu == 2 :
        # 넣은 돈이 800원 이상일 경우
        if money >= 800 :
            money -= 800
        # 넣은 돈이 600이상 800미만일 경우
        else :
            print("돈 더 넣어~~~")
    # 3번 메뉴 선택
    elif menu == 3 :
        # 넣은 돈이 1000원 이상일 경우
        if money >= 1000 :
            money -= 1000
        # 넣은 돈이 600이상 1000미만일 경우
        else :
            print("돈 더 넣어~~~")
    # 1,2,3번이 아닌 다른 메뉴를 눌렀을 경우
    else :
        print("잘못된 메뉴")
        
    # 잔돈처리(1000원, 500원, 100원으로 ~)
    cash_1000 = money // 1000
    cash_500 = money % 1000 // 500
    cash_100 = money % 1000 % 500 // 100
    
    print(f"잔돈 >> 1000원 {cash_1000}개, 500원 {cash_500}개, 100원 {cash_100}개")
    
# 넣은 돈이 600원 미만일 경우
else :
    print("돈을 더 넣어주세요~!")
반응형