你有一行Python代码情书未拆封

马上就是情人节了, 试试下面这行代码,画一个爱心?,送给你要表白的对象吧。 :)

print(
.join([.join([(ILoveU[(x-y) % len(ILoveU)] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else  ) for x in range(-25, 25)]) for y in range(13, -13, -1)]))

显示效果如图: 下面来简单拆分一个这个代码,通过做一些简单的数字调整,你也可以只画半颗?哦。

原理: 1、借助数学函数 爱心图函数——((x0.05)**2+(y0.1)**2-1)**3-(x0.05)*2(y0.1)**3,具体为什么是这个公式,我也没研究出来。函数等于0就是 爱心图内部。

2、从x轴开始,判断函数小于0的话用字符填充,否则用空格填充。取x在(-25,25),可以画一整个爱心;如果只取(-25,0)就是左半心;反之(0,25)就是又半心。

3、从y轴开始,逐行输出。(13, -13, -X) 调整X可以调整爱心的扁平度。

看明白了么?下面我们试试画半个爱心,去寻找和等待你的另一半吧。

print(
.join([.join([(WhereAreU[(x-y) % len(WhereAreU)] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else  ) for x in range(-30, 0)]) for y in range(15, -15, -1)]))

显示效果如图:

经验分享 程序员 微信小程序 职场和发展