这几天刚刚接触python,学习之余写了一个爱心demo,代码如下:
import math
words = input("请输入内容:").split()[0]
loveExpression = lambda x, y: 64 - (x**2 + (y - math.pow(math.pow(x,2.0), 1.0/3))**2)
lines = []
for y in range(12, -12, -1):
line = ''
for x in range(-12, 12):
line += words[(x - y) % len(words)] if loveExpression(x, y) >= 0 else " "
lines.append(line)
print('\n'.join(lines))
为了了解相关运算的特性,对代码进一步精简,最终如下:
print('\n'.join([''.join(['love'[(x - y) % len('love')] if (64 - (pow(x, 2) + pow((y - pow(pow(x, 2), 1.0/3)), 2))) >= 0 else " " for x in range(-12, 12)]) for y in range(12, -12, -1)]))
(如果采用windows的cmd命令运行,可以将cmd的属性字体设置为点阵,然后大小根据自己需要调整,就可以得到一个漂亮的心型)