程式結構
以下是用到 print, while, if, try, continue, break, 等等方式做出來的
# 程式入口 用 inp 判斷是否該項目輸入正確
print "請輸入工時\
如果工時超過 40 小時會以 '多少' 倍計算 ? "
inp=1
while True:
# 輸入超時的倍數 可以小數且大於1 , 也不能有字串
if inp==1:
inp=2
try:
double=float(raw_input("請輸入超時的倍數 : "))
except:
inp=1
if double < 1:
inp=1
if inp==1:
print "輸入錯誤 要大於等於 1 ,也不能有字串 "
continue
# 輸入每小時多少美金 不可小數或字串
if inp==2:
inp=3
try:
rate=float(raw_input("請輸入每小時多少美金 : "))
except:
inp=2
if rate < 0:
inp=2
if inp==2:
print "輸入錯誤 要大於 0 ,也不能有字串 "
continue
# 輸入工作多少小時(最小為 0.5小時) 以半小時計薪
if inp==3:
inp=4
print "工作多少小時(最小為 0.5小時) 以半小時計薪 例如 4.5"
try:
hours=float(raw_input("請輸入工作時數 : "))
except:
inp=3
if hours < 0.5:
inp=3
if inp==3:
print "輸入錯誤 要大於等於 0.5"
continue
else:
#用四捨五入判斷是否大於0.5
#是大於就取整數加 0.5
#小於就取整數
if round(hours) > hours:
hours = int(hours)+0.5
else:
hours=int(hours)
pay=hours*rate
if hours>40:
pay=(hours-40)*rate*double+pay
# 用 %r 格式化輸出
print ("所得金額 : %r 美金" % pay)
break
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
global int
def inputkey(strs):
while True:
try:
keyin=float(raw_input(strs))
if keyin < inp:
print "輸入錯誤 要大於等於 %r!!" % inp
continue
return keyin
break
except:
print "輸入錯誤不能有字串 !!"
continue
inp=1
double = inputkey("請輸入超時的倍數 : ")
inp=0
rate = inputkey("請輸入每小時多少美金 : ")
hours = inputkey("請輸入工作多少小時 : ")
if round(hours) > hours:
hours = int(hours)+0.5
else:
hours=int(hours)
pay=hours*rate
if hours>40:
pay=(hours-40)*rate*(double-1)+pay
print ("所得金額 : %r 美金" % pay)
留言列表