根据全国人大常委会关于修改个人所得税法的决定,10月1日起,纳税人的工资、薪金所得将适用新的费用减除标准(通常说的“起征点”),由每月3500元提高到每月5000元,并适用新的个税税率表。
旧税率

新税率

那么新起征点和税率的实施,究竟可以让工薪阶层多拿多少钱?这就是我们今天的题目。
实现一个个税计算器:
【输入】税前收入、五险一金
【输出】新旧两种税率下的应纳税款和税后收入
个税计算公式:
应纳税所得额 = 税前收入 - 五险一金 - 起征点
应纳税额 = 应纳税所得额 × 税率 - 速算扣除数
效果演示:

附加题:
做成一个带窗口界面的程序。(GUI 模块使用可参考 tkinter - Python的门面担当)
详细解答和参考代码将在下次栏目中给出,也可以其他同学在留言中的代码。
期待各位同学提交解答。
提交代码可以使用 paste.ubuntu.com 或
codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。
往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。
【解答】图像的指纹:数字水印
上一次的题目 【每周一坑】图像的指纹:数字水印 + 【解答】鸡兔同笼 中已经给出了基本的原理和开发思路,这里提供一份我的参考解答:
添加信息:
# coding:utf-8
from PIL import Image
# 字符串转二进制字符列表
def get_bits(s):
bs = ''
for c in s:
bs += bin(ord(c))[2:].zfill(8)
return list(bs)
def add_info(pic, info):
# 读取图片
img = Image.open(pic).convert('RGB')
width, height = img.size
# 转换加密字符
bits = get_bits(info)
# print(bits)
# 添加信息
pixels = list(img.getdata())
new_pixel_list = []
# 遍历图片像素
for pixel in pixels:
new_pixel = []
# 每个像素3个颜色值
for c in pixel:
# 取出末位
c = c // 2 * 2
# 从加密字符串中取出第一位加在颜色值上
if len(bits) > 0:
c += int(bits.pop(0))
new_pixel.append(c)
# 把新的像素值加到列表中
new_pixel_list.append(tuple(new_pixel))
# 创建同样大小的新图片
img_new = Image.new("RGB", (width, height))
# 添加像素值
img_new.putdata(data=new_pixel_list)
# img_new.show()
# 保存图片
img_new.save('img/crypto.png')
add_info('img/new.png', 'learn python with crossin')
提取信息:
# 将二进制字符列表转为字符串
def decode_bits(bits_list):
# print(bits_list)
s = ''
for bits in bits_list:
c = chr(int(bits, 2))
s += c
return s
def get_info(pic):
# 读取图片
img = Image.open(pic).convert('RGB')
# 提取信息
pixels = list(img.getdata())
bits_list = []
bits = ''
for pixel in pixels:
for c in pixel:
# 获取每个颜色的末位值拼接
bits += str(c % 2)
# 每8个字符进行处理
if len(bits) == 8:
# print(bits)
if bits == '00000000':
# 如果遇到全0就结束并返回解码值
return decode_bits(bits_list) # 添加二进制字符串到列表中
bits_list.append(bits)
bits = ''
get_info('img/crypto.png')
方法有很多,我这里只是一个比较简单的实现方法。
也可以参考其他同学的实现:
@Mr. wang 使用了 列表解析 和 zip,代码更简洁;
@怀天远途 计算了可以添加信息的空间大小;
@黄涛 使用了 opencv;@☁ 使用了 numpy;
@花儿笑了 在单独运行解码部分会有点问题;
@鑫HEAD、@Schnee 也提交了解答,不过页面似乎过期了。
感谢各位同学的参与。
期待在下一期中看到你的代码!
回复关键字:
python :零基础入门课程目录
新手 :初学者指南及常见问题
资源 :超过500M学习资料网盘地址
项目 :十多个进阶项目代码实例
如需了解视频课程及答疑群等更多服务,请号内回复 码上行动
代码相关问题可以在论坛上发帖提问 bbs.crossincode.com
推荐阅读:
抖音 | 押韵工具 | 虎扑 | 如何debug | 苹果 | 查天气 | 我用Python | 知乎 | 排序 | 电影票 | 技术宅 | 单词表 | 新手建议
欢迎加入
Crossin的编程教室
crossincode.com

请把我们分享给身边爱学习的小伙伴 :)
☟点击文末“阅读原文”,查看更多学习资源