開發了乙個個稅計算器,輸入工資後,列印應繳納的個稅。
個稅計算公式:
應納稅所得額 = 工資金額 - 各項社會保險費 - 專項扣除 - 起徵點(5000元)
納稅 = 應納稅所得額 × 稅率 - 速算扣除數
其中各項社會保險費和專項扣除我們在本程式中設定為 0 即可,不用考慮。
需要注意,程式執行的引數只有乙個,並且引數為工資金額,需要為整數,如果引數數量不準確或者無法轉成整數,需要使用 print 列印錯誤資訊,**如下:
print
("parameter error"
)
將引數轉成整數可以使用 int() ,如果不能正確轉成整數(例如 int(『abcd』)),需要處理異常並列印上面的錯誤資訊。
輸出保留兩位小數可以使用字串的 format 函式格式化,例如 format(1.2345, 「.2f」) 得到的就是有兩位小數的字串 『1.23』
命令列引數獲取方法是使用 sys 模組的 sys.ar**,不要使用 input() 獲取輸入,其中 sys.ar**[0] 為指令碼名稱, sys.ar**[1] 為第乙個引數,
# -*- coding: utf-8 -*-
import sys
defmain()
:# 檢查命令列引數合法性,並轉換為正確型別
iflen
(sys.ar**)!=2
:print
('parameter error'
) exit(
)#但凡輸入都需要進行異常處理,防止出錯,
try:
income =
int(sys.ar**[1]
)except valueerror:
print
('parameter error'
) exit(
)# 扣除起徵點
value = income -
3500
# 依據落入的稅率區間,按照相應的稅率引數計算稅費
if value <=0:
result =
0elif
0< value <=
1500
: result = value *
0.03-0
elif
1500
< value <=
4500
: result = value *
0.1-
105elif
4500
< value <=
9000
: result = value *
0.2-
555elif
9000
< value <=
35000
: result = value *
0.25
-1005
elif
35000
< value <=
55000
: result = value *
0.3-
2755
elif
55000
< value <=
80000
: result = value *
0.35
-5505
else
: result = income *
0.45
-13505
# 列印結果
print(''
.format
(result)
)#有下面這一行**,說明當這個calculator.py當作模組插入其他.py檔案的時候不執行這行**,但是可以用main()函式,如果不建立main函式的話,就一段**都執行不了,只能依靠python3 檔名 金額來執行檔案了
if __name__ ==
'__main__'
: main(
)
ARTS挑戰第一周
2.review 3.tip 4.share 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。例項 給定 nums 2,7,11,15 targe...
CMOS儲存器第一周
1 記憶體分配粒度 一次分配記憶體的最小值 在表示堆的結構體中就是以分配粒度為基本單位來表示堆塊大小 類似於磁碟管理的基本單位是簇,乙個簇又是2的n次方個扇區。2 訪問時間 從第乙個位址訊號或晶元使能訊號的前沿出現到資料輸出端出現第乙個資料訊號的前沿 週期時間 從第乙個位址訊號或晶元使能訊號的前沿出...
linux雲計算第一周作業
1.用自己的語言簡述計算機的組成 答 計算機的組成分為五大部分,分別為運算器,控制器,儲存器,輸入和輸出裝置。2.簡單說明硬體 作業系統 應用軟體與使用者之間的關係 答 作業系統安裝在硬體上,應用軟體安裝在作業系統之上,使用者與應用軟體進行互動。3.簡述linux哲學思想 4.linux系統中命令分...