- 字符串和取值之间有空格不会报错
[('1234' [(x - y) % len('abcd')] if ...
res = '1234' [1] # 2
- 打印爱心
# 一句话【极力不推荐,可读性太差】
print('
'.join(
[' '.join(
[('1234' [(x - y) % len('abcd')] if ((x * 0.1) **2 + (y * 0.1) **2 - 1) **3 - (x * 0.1) **2 * (y * 0.1) **3 >= 0 else ' ')
for x in range( - 30, 30)])
for y in range(15, -15, -1)]))
# 正常
allChar = []
for y in range(15, -15, -1):
lst = []
lst_con = ''
for x in range(-30, 30):
formula = ((x * 0.1) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.1) ** 2 * (y * 0.1) ** 3
if formula >= 0:
# lst_con = '1'
lst_con = '1234'[(x - y) % len('1234')]
else:
lst_con = ' '
lst.append(lst_con)
allChar.append(' '.join(lst))
print('
'.join(allChar))
#高级
https://zhuanlan.zhihu.com/p/85804612
# 从 ' I love U' 里挑字符出来拼行. 为毛 x-y ? 只为了斜一点, 但要求是保证它的增速为 1 . 你用 x 也行 但画出来就是耿直的 I love U了
l2=[]
# 将纵向每个字符当作 y 坐标的刻度
for y in range(15,-15,-1):
l3 = []
# 将横向每个字符当作 x 坐标的刻度
for x in range(-30,30):
# 如果 x,y 点在心形内,则将一个字符加入到行,否则加入空字符
l3.append((' I love U'[(x-y)%9]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' '))
l2.append(''.join(l3))
l1 ='
'.join(l2)
for i in l1:
print(" 33[91m"+i,end="",flush=True)