个人所得税计算器
def income_tax():
"""用户输入应发工资薪金所得、五险一金金额和个税免征额,输出应缴税款和实发工资,
结果保留小数点后两位。当输入数字小于0 或等于0 时,输出“error”。
实发工资 = 应发工资 - 五险一金 - 个人所得税
建议使用以下变量名:
salary:每月应发工资薪金
insurance_fund:五险一金
exemption:个税免征额
educted_amount:速算扣除数
测试用例
输入(冒号前是提示性文字,冒号后的数字为用户输入)
请输入应发工资薪金金额:16000
请输入五险一金金额:4000
请输入个税免征额:5000
输出
应缴税款490.00 元,实发工资11510.00 元。
"""
# ====================Begin===================================
# 此处去掉注释符号“#”并补充你的代码
salary = float(input())
insurance = float(input())
threshold = float(input())
if salary <= 0 or insurance <= 0 or threshold <= 0:
print('error')
else:
taxable_income = salary - insurance - threshold
if taxable_income <= 0:
tax = 0
elif taxable_income <= 3000:
tax = taxable_income * 0.03
elif taxable_income <= 12000:
tax = taxable_income * 0.1 - 210
elif taxable_income <= 25000:
tax = taxable_income * 0.2 - 1410
elif taxable_income <= 35000:
tax = taxable_income * 0.25 - 2660
elif taxable_income <= 55000:
tax = taxable_income * 0.3 - 4410
elif taxable_income <= 80000:
tax = taxable_income * 0.35 - 7160
else:
tax = taxable_income * 0.45 - 15160
tax = round(tax, 2)
real_salary = salary - insurance - tax
real_salary = round(real_salary, 2)
print(f'应缴税款{tax:.2f}元,实发工资{real_salary:.2f}元。')
# ======================End=================================
if __name__ == '__main__':
income_tax() # 调用函数完成计算和输出
编写一个割圆术计算圆周率的小程序。
import math
def cutting_circle(n): # n为分割次数
"""接收表示分割次数的整数n为参数,计算分割n次时正多边形的边数和圆周率值,返回边数和圆周率值"""
side_length = 1 # 初始边长
edges = 6 # 初始边数
# 补充你的代码
#######################Begin############################
# 补充你的代码
edges=edges*(2**n) #分割后的边数
def length(x):
h=math.sqrt(1-(x/2)**2)
CD=1-h
AD=math.sqrt((x/2)**2 + CD**2)
return AD
for i in range(n):
side_length=length(side_length)
pi=side_length*edges/2
#print(f"边长为{side}")
########################End###########################
return edges, pi
if __name__ == '__main__':
times = int(input()) # 割圆次数
# 补充你的代码
# 圆周率
#######################Begin############################
# 补充你的代码
edges,pi=cutting_circle(times)
print(f'分割{times}次,边数为{edges},圆周率为{pi:.6f}')
print(f'math库中的圆周率常量值为{math.pi:.6f}')
########################End###########################
无穷级数法
def leibniz_of_pi(error):
"""接收用户输入的浮点数阈值为参数,返回圆周率值"""
# 补充你的代码
x=3
f=1
s=1
while (1/x) > error:
if f==1:
s=s-(1/x)
f=0
x=x+2
else:
s=s+(1/x)
f=1
x=x+2
return s*4
if __name__ == '__main__':
threshold = float(input())
print("{:.8f}".format( leibniz_of_pi(threshold) ) ) #保留小数点后八位
蒙特卡洛法
import random
def monte_carlo_pi(num):
"""接收正整数为参数,表示随机点的数量,利用蒙特卡洛方法计算圆周率
返回值为表示圆周率的浮点数"""
# 补充你的代码
num1=0
for i in range(num):
x,y=random.uniform(-1,1),random.uniform(-1,1)
if x**2+y**2 < 1:
num1=num1+1
pi=num1/num*4
return pi
if __name__ == '__main__':
sd = int(input()) #读入随机数种子
random.seed(sd) #设置随机数种子
times = int(input()) # 输入正整数,表示产生点数量
print(monte_carlo_pi(times)) # 输出圆周率值,浮点数
梅钦法
import math
def machin_of_pi():
"""用梅钦级数计算圆周率,返回圆周率值"""
# 补充你的代码
pi = 4*(4*math.atan(1/5)-math.atan(1/239))
return pi
if __name__ == '__main__':
cal_pi = machin_of_pi() # 调用判断类型的函数
print(cal_pi) # 输出函数运行结果
拉马努金法
import math
def ramanujan_of_pi(n):
"""接收一个正整数n为参数,用拉马努金公式的前n项计算圆周率并返回。"""
# 补充你的代码
def sumk (k):
s =1
for i in range(1,k+1):
s *= i
return s
a = 0
for i in range (n) :
a += (sumk(4*i))*(1103+26390*i)/(sumk(i)**4*396**(4*i))
pi = 1/a*9801/2/2**(1/2)
return pi
if __name__ == '__main__':
n = int(input())
cal_pi = ramanujan_of_pi(n)
print(cal_pi) # 输出函数运行结果