|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 jackie-L 于 2016-11-9 23:02 编辑
原帖------>好牛逼的一行python代码输出!
我零基础学python半个月,就是对问题好奇,我就对这个代码分析了一下,明白了一些,还是有些不明白希望高手指点
- print('\n'.join([''.join([('Love'[(x-y) % len('Love')] 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, 30)]) for y in range(30, -30, -1)]))
- #以上是代码原文
- #下面的是我理解的部分
- print('\n'.join(a)) #将列表中的每一个值的字符串后加上换行符并打印出来
- a = [''.join(b) for y in range(30, -30, -1)] #列表解析生成60个《''.join(b)》的列表。 y被赋值是[30到-30]
- b = [(c) for x in range(-30, 30)] #列表解析生成60个《(c)》的列表 x被赋值是[-30到30]
- c = d if e else ' ' #如果if中的公式e为True则返回d的值,否则返回一个空格的字符串
- d = 'Love'[(x-y) % len('Love')] #x-y的值与'love'的长度(也就是4)求余数,返回‘love’[余数]中的相应字符
- e = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 #这部分的算法不懂有谁解释下吗,应该是什么数学公式,计算这行能否放的下
复制代码 |
|