1.
여러분이 10일 작업에 대한 두 가지 급여 옵션을 제의 받았다고 가정하자
옵션1: 하루에 $100 지급
옵셥2: 첫째 날에 $1, 둘째 날에 $2, 셋째 날에 $4등 매일 전일 급여의 두 배를 받음
두 가지 옵션 중에 어떤 경우가 좀 더 유리한 옵션인지 결정하라.
이 때 Option1과 Option2라는 함수를 각각 생성하여 계산하여라.
def main():
## Compare salary options
opt1 = option1()
opt2 = option2()
print("Option 1 = ${0:,.2f}.".format(opt1))
print("Option 2 = ${0:,.2f}.".format(opt2))
if opt1 > opt2:
print("Option 1 pays better.")
elif opt1 == opt2:
print("Options pay the same.")
else:
print("Option 2 is better.")
def option1():
## Compute the total salary for 10 days,
## with a flat salary of $100/day.
sum = 0
for i in range(10):
sum += 100
return sum
def option2():
## Compute the total salary for 10 days,
## starting at $1 and doubling each day.
sum = 0
daySalary = 1
for i in range(10):
sum += daySalary
daySalary *= 2
return sum
main()
2.
신용카드 계약 조건에 대한 잔고와 최소 지불 금액을 계산하는 프로그램을 작성하라.
금융 수수료는 기존 잔고의 1.5%이다.
신규 잔고가 $20 이하이면 최소 지불 금액은 전체 신규 잔고가 되어야 한다.
그렇지 않은 경우, 최소 지불 금액은 $20와 이를 초과하는 신규 잔고액의 10%가 된다.
main 함수는 다음 3개의 함수를 호출해야 한다.
1)다중값 입력 함수
2)신규 잔고와 최소 지불 금액을 계산하는 함수
3)출력 함수
ex>
Enter old balance:200
Enter charge for month:150
Enter credits:100
New balance: $253.00
Minimum payment: $43.00
def main():
## Calculate new balance and minimum payment for a credit card.
(oldBalance, charges, credits) = inputData()
(newBalance, minimumPayment) = calculateNewValues(oldBalance,charges, credits)
displayNewData(newBalance, minimumPayment)
def inputData():
oldBalance = float(input("Enter old balance: "))
charges = float(input("Enter charges for month: "))
credits = float(input("Enter credits: "))
return (oldBalance, charges, credits)
def calculateNewValues(oldBalance, charges, credits):
newBalance = (1.015) * oldBalance + charges - credits
if newBalance <= 20:
minimumPayment = newBalance
else:
minimumPayment = 20 + 0.1 * (newBalance - 20)
return (newBalance, minimumPayment)
def displayNewData(newBalance, minimumPayment):
print("New balance: ${0:0,.2f}".format(newBalance))
print("Minimum payment: ${0:0,.2f}".format(minimumPayment))
main()
3.
40시간 초과 근무를 하면, 1.5배의 금액을 지불하는 어떤 사람의 주급을 계산하는 프로그램을 작성하라.
main 함수는 다음 3개의 함수를 호출해야 한다.
1)입력 함수
2)값 계산 함수
3)출력 함수
ex>
Enter hours worked : 42
Enter hourly pay: 10.00
Week's pay:$430.00
4.
작업자의 이름, 작업시간, 시간당 급료를 입력받아 주급을 계산하는 프로그램을 작성하라.
이 프로그램은 작업자의 이름, 작업 시간, 시간당 급여, Wages 클래스 안에 payForWeek 매서드를 포함시킨다.
(법규에 의해 40시간 이상 초과 급무시 1,5배의 급여를 지불해야한다.)
ex>
Enter person's name : kim
Enter number of hours worked: 45
Enter hourly wage: 20
Pay for Kim : $950.00
def main():
salary = Wages()
name = input("Enter person's name: ")
salary.setName(name)
hours = float(input("Enter number of hours worked: "))
salary.setHours(hours)
wage = float(input("Enter hourly wage: "))
salary.setWage(wage)
print("Pay for", salary.getName() + ':', salary.payForWeek())
class Wages:
def __init__(self, name="", hours=0.0, wage=0.0):
self._name = name
self._hours = hours # Number of hours worked during week
self._wage = wage # Hourly wage
def setName(self, name):
self._name = name
def getName(self):
return self._name
def setHours(self, hours):
self._hours = hours
def getHours(self):
return self._hours
def setWage(self, wage):
self._wage = wage
def getHours(self):
return self._hours
def payForWeek(self):
amount = self._hours * self._wage
if self._hours > 40:
amount = 40 * self._wage + ((self._hours - 40) * (1.5 * self._wage))
return "${0:,.2f}".format(amount)
main()
5.
쇼핑 웹사이트에서 사용자가 카트에 담은 항목을 확인하는 프로그램을 작성하여라.
이 프로그램은 구매한 단일 품목의 정보를 유지하기 위해 Purchase 클래스를 사용하고
Purchase 클래스의 객체 목록을 유지하기 위해 Cart클래스를 사용해야한다.
ex>
Enter description of article : shirt
Enter price of article:35
Enter quantity of article:3
Do you want to enter more articles (Y/N)? Y
Enter description of article : tie
Enter price of article:15
Enter quantity of article:2
Do you want to enter more articles (Y/N)? N
ARTICLE PRICE QUANTITY
shirt $35.00 3
tie $15.00 2
TOTAL COST: $135.00
'Data > Python' 카테고리의 다른 글
Machine Learning #4 Pandas (0) | 2018.09.19 |
---|---|
Machine Learning #3 numpy (0) | 2018.09.19 |
Machine Learning #1 python (0) | 2018.09.18 |
파이썬 선(禪)(Zen of Python) (0) | 2016.09.22 |
Python 강좌(5) (0) | 2016.07.22 |