📅  最后修改于: 2023-12-03 15:36:16.737000             🧑  作者: Mango
本程序实现了从原始价格和净价格计算商品及服务税的功能,支持不同的税率和税种。用户可以输入原始价格或净价格,选择对应的税种和税率,程序即可自动计算出税额和总价格。
本程序支持以下功能:
本程序需要在Python 3环境下运行,在命令行下输入以下命令即可运行程序:
python tax_calculator.py
程序会提示用户输入原始价格或净价格,以及选择税种和税率,用户能够自由选择不同的选项进行计算。计算完成后,程序会输出税额和总价格。
本程序的核心算法是根据原始价格和净价格计算出税额和总价格。对于给定的原始价格 p,税率 r,税种 t,可以通过如下公式计算税额和净价格:
tax = p * r / (1 + r)
net_price = p - tax
其中,tax为税额,net_price为净价格,r为税率。对于给定的净价格 n,税率 r,税种 t,可以通过如下公式计算原始价格和税额:
net_price = p - tax
p = n / (1 - r)
tax = p * r
其中,n为净价格,p为原始价格,tax为税额,r为税率。
下面是本程序的核心代码实现。本程序使用了Python 3的标准库和数学库,具有较高的兼容性和稳定性。用户可以根据需要自由修改和扩展代码。
import math
def calculate_tax(original_price, net_price, tax_rate, tax_type):
'''
计算税额和净价格
:param original_price: 原始价格
:param net_price: 净价格
:param tax_rate: 税率
:param tax_type: 税种
:return:税额和净价格
'''
if original_price is None and net_price is None:
return None
if original_price is not None and net_price is not None:
return None
if original_price is not None:
tax = original_price * tax_rate / (1 + tax_rate)
net_price = original_price - tax
else:
tax = net_price * tax_rate
original_price = net_price / (1 - tax_rate)
return {'tax': round(tax, 2), 'net_price': round(net_price, 2), 'original_price': round(original_price, 2)}
def main():
'''
主函数
'''
tax_types = {
1: {'name': '增值税', 'rate': 0.17},
2: {'name': '消费税', 'rate': 0.10},
3: {'name': '营业税', 'rate': 0.05},
4: {'name': '关税', 'rate': 0.08},
5: {'name': '城建税', 'rate': 0.01}
}
while True:
original_price = input('请输入原始价格:')
if original_price == '':
original_price = None
else:
original_price = float(original_price)
net_price = input('请输入净价格:')
if net_price == '':
net_price = None
else:
net_price = float(net_price)
for index, tax in tax_types.items():
print('%d、%s(%0.2f%%)' % (index, tax['name'], tax['rate'] * 100))
tax_type = input('请选择税种(1-5):')
if not tax_type.isdigit() or int(tax_type) not in tax_types.keys():
print('无效的税种选择,请重新输入。')
continue
tax_rate = tax_types[int(tax_type)]['rate']
result = calculate_tax(original_price, net_price, tax_rate, tax_type)
if result is None:
print('原始价格和净价格中必须输入一个。')
continue
print('------------------------------------------------------------')
print('原始价格:%0.2f元,税率:%0.2f%%,税种:%s' % (result['original_price'], tax_rate * 100, tax_types[int(tax_type)]['name']))
print('净价格:%0.2f元,税额:%0.2f元,总价格:%0.2f元' % (result['net_price'], result['tax'], result['original_price'] + result['tax']))
print('------------------------------------------------------------')
choice = input('是否继续?(Y/N):')
if choice.lower() != 'y':
break
if __name__ == '__main__':
main()
本程序实现了从原始价格和净价格计算商品及服务税的功能,并支持多种税种和税率选择。本程序的核心算法使用了经典的税额和净价格计算公式,具有较高的准确性和稳定性。本程序的代码实现清晰简洁,易于理解和扩展,用户可以根据需要自由修改和扩展代码。