0

所以今天實際上是我學習編程語言的第一天,所以我對Python很陌生。我正在密歇根大學參加在線的Python for Informatics課程,我們的第一個真正任務是創建一個簡單的總薪資計算器。試圖在Python中基於條件語句設置變量

這很簡單,所以我決定擴大計劃可以做的工作來計算淨工資和納稅。我遇到的麻煩是決定如何動態地(如果這甚至是正確的話)根據一系列條件語句設置變量「稅率」的值。

我還沒有找到通過Python的網站和堆棧溢出搜索的答案。我認爲我對編程的理解有限可能限制了我正確解釋我所發現的內容的能力。

只是在尋找一些幫助:

代碼:

#This program is intended to calculate the net pay of employees 
#This first section includes a loop for mistakes and finds gross pay 

while True: 

hours = raw_input('How many hours do you work weekly?') 
hours1 = float(hours) 
rate = raw_input('What is your hourly rate of pay?') 
rate1 = float(rate) 
grosspay = hours1 * rate1 
taxstatus = raw_input('Do you pay taxes?') 


#This secdtion is establishing the tax bracket the user falls into 
taxbracket = taxrate 
if grosspay <= 1000: 
    taxrate = 0.90 
if grosspay > range(1000,1500): 
    taxrate = 0.78 
if grosspay >= 1501: 
    taxrate = 0.63 

# This section is intended to calculate pay after taxes 
grosspay = hours1 * rate1 
if taxstatus == 'yes': 
    netpay = grosspay * taxrate 
print'Your weekly pay after taxes is',netpay 
if not taxstatus: 
    print grosspay 

當我運行這PyCharm它讓我知道「TAXRATE」尚未確定。我最終希望程序根據用戶「grosspay」是什麼設置「稅率」。我正在嘗試做什麼?我假設它是,我只是不明白如何去做。

任何幫助是極大的讚賞並且如果有人想知道循環是什麼,因爲我已經得到了節目的這一部分完成後,我在做一個用戶錯誤檢查器。

+0

縮進在Python – Pynchia

+0

'taxbracket = taxrate'擺脫這一行很重要的,因爲你沒有使用'taxbracket'隨時隨地 – NightShadeQueen

+0

首先,行'taxbracket = taxrate'是哪裏你的問題是,因爲你還沒有定義'稅率'。但是,您從不使用'taxbracket',因此您可以完全刪除該行。其次,如果毛支付>範圍(1000,1500):'如果毛支付<= 1500,則需要更改'' –

回答

1

你的邏輯在if grosspay > range(1000, 1500)有點懷疑。比一系列數字「更大」意味着什麼?我的猜測是你輸入的grosspay實際上在[1000, 1500)範圍內,所以它在你的代碼中遇到了這個邏輯錯誤,並且沒有將它分配給任何東西。

檢查數字是否在範圍內的常用方法是使用in運算符。

if some_num in range(1, 10): 
    print("some_num is 1, 2, 3, 4, 5, 6, 7, 8, or 9") 

但是你會發現,some_numMUST包含在整數的範圍[1, 9]這個觸發。如果some_num7.5,則會失敗。這是令人難以置信的可能在毛薪的情況下。什麼人的工資出現到一個完全平均的金額?

相反,你可以做的是:

if grosspay <= 1000: 
    taxrate = 0.90 
elif 1000 < grosspay <= 1500: 
    taxrate = 0.78 
elif 1500 < grosspay: 
    taxrage = 0.63 

使用elif,而不是一系列if小號使得代碼會更有效,因爲if/elif/else是通過定義一個塊是互斥的。換句話說:

a = 1 
b = 2 

if a == 1: 
    print("This gets done!") 
if b == 2: 
    print("This gets done!") 

if a == 1: 
    print("This gets done!") 
elif b == 2: 
    print("BUT THIS DOESN'T!") 
else: 
    print("(this doesn't either...)") 
+1

我誠實地不確定如何創建一系列我想要比較考慮的數字。鑑於我在課堂上的位置,我並不熟悉elif,但這非常有幫助。這就像一個魅力!非常感謝你! – natecbc

相關問題