DAY2:
目录
Test 2:
涉及知识点:
- 列表
- 元组
- 格式化输入
题目:只做一个个人所得税计算器,要求输入工资,输出应缴纳个人所得税的金额
现附上个税表:
个人所得税税率级数对应表 级数 全年应纳所得税额(元) 税率(%) 1 不超过36000的部分 3 2 超过36000至不超过144000的部分 10 3 超过144000至不超过300000的部分 20 4 超过300000至不超过420000的部分 25 5 超过420000至不超过660000的部分 30 6 超过660000至不超过960000的部分 35 7 超过960000的部分 45
先上代码:
#个税计算器
arr=[960000,660000,420000,300000,144000,36000,0]
percent=(0.45,0.35,0.3,0.25,0.2,0.1,0.03)
salary=int(input("Your salary:"))
ans=0
for i in range(0,7,1):
if salary>arr[i]:
ans+=(salary-arr[i])*percent[i]
salary=arr[i]
print(ans)
列表:
#定义方法
列表名=[元素1,元素2,元素3,元素4,元素5,...]
arr = ['a','b','c','d']
下标: 0 1 2 3
也可用: -4 -3 -2 -1
- 列表名:列表名就是一个变量名,符合Python变量命名规则
- 元素:列表中每个元素的类型不一定要求相同
- 可以通过arr[x:y]的方式读取一个列表中多个元素(下标为x到y,x或y均可缺省)
- 如果我们需要删除列表中一个元素,可以通过 "del 列表名[n]" 来删除
- 具体使用方式见如下代码(细心的话会发现转义字符有些时候被转义,有些时候不会)
arr=[960000,"aaa",0xcc,"*\n*"]
print("-------------分割线--------------")
print("用For遍历列表:")
for i in arr:
print(i,end=",")
print("\n")
print("-------------分割线--------------")
print("下标为-1的元素:",arr[-2])
print("下标为-4的元素:",arr[-4])
print("\n-------------分割线--------------")
print("arr[2:4]:",end="")
print(arr[2:4])
print("-------------分割线--------------")
print("arr[2:]:",end="")
print(arr[2:])
print("\n-------------分割线--------------")
print("arr[:4]:",end="")
print(arr[:4])
print("\n-------------分割线--------------")
print("也可以直接输出整个列表:",end="")
print(arr)
print("\n-------------分割线--------------")
print("删除掉下标为3的列表元素:",end="")
del arr[3]
print(arr)
print("\n-------------分割线--------------")
print("可以通过以下代码删除掉整个列表",end="")
del arr
输出结果:
元组:
#定义方法
元组名=(元素1,元素2,元素3,元素4,元素5,...)
arr = ('a','b','c','d')
下标: 0 1 2 3
也可用: -4 -3 -2 -1
- 元组的基本规则与列表极其相似
- 不同的是,元组类似于C语言中的常量数组,在第一次定义时赋值后就不能再修改
- 如果元组只有一个元素,要在最后一个元素后加上逗号(如:arr=(2,))
- 特别的:元组不能删除某一个元素
- 元组和列表其实都是可以加减的,这点后续遇到题目在说
arr=(960000,"aaa",0xcc,"*\n*")
print("-------------分割线--------------")
print("用For遍历元组:")
for i in arr:
print(i,end=",")
print("\n")
print("-------------分割线--------------")
print("下标为-1的元素:",arr[-2])
print("下标为-4的元素:",arr[-4])
print("\n-------------分割线--------------")
print("arr[2:4]:",end="")
print(arr[2:4])
print("-------------分割线--------------")
print("arr[2:]:",end="")
print(arr[2:])
print("\n-------------分割线--------------")
print("arr[:4]:",end="")
print(arr[:4])
print("\n-------------分割线--------------")
print("也可以直接输出整个元组:",end="")
print(arr)
print("\n-------------分割线--------------")
print("可以通过以下代码删除掉整个元组",end="")
del arr
输出结果
Ps:大家可以研究一下元组的输出与列表的区别
格式化输入:
#格式化输入
变量名=数据类型(input("提示信息"))
- 变量名:该变量立即储存input输入的值
- 数据类型:类似于C语言类型转换,将input输入的数据转变为需要的类型
- 提示信息:在屏幕上输出该字符串来引导用户输入
- 通过比价下面两个代码和输出结果来理解数据类型的作用:
实例1:
#实例1 data=int(input("请输入123:")) print(data+1)
输出结果:
实例2:
#实例2 data=str(input("请输入123:")) print(data+1)
输出结果 :
通过比较可以发现:
当我们将input的类型转化为int后,编译器认为我们输入的123是一个数字,data为一个整形变量,在print中+1后直接输出为数字 。
当我们将input的类型转化为str后,编译器认为我们输入的123是一个字符串,此时data为一个字符串变量,在print中+1后由于字符串不能+数字,编译器提示错误。
但实例2改为如下代码即可正常运行:
data=str(input("请输入123:"))
print(data+"1")
输出结果:
因为字符串可以用+来拼接