close

 

程式結構

以下是用到 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)

arrow
arrow
    文章標籤
    python if while tyy except
    全站熱搜
    創作者介紹
    創作者 echochio 的頭像
    echochio

    echochio

    echochio 發表在 痞客邦 留言(0) 人氣()