这一长串的运算顺序
哪位大神能帮我解释下,这串代码的运算顺序啊。这中括号小括号外加for循环,我看晕了,不知道他是怎么运算的了{:10_266:}print('\n'.join([' '.join(['%s*%s=%s'%(y,x,x*y)for y in range(1,x+1)])for x in range(1,10)])) https://www.jianshu.com/p/fe8ce0dac4e1 加了缩进,能看懂了么?print(
'\n'.join(
[
' '.join(
[
'%s*%s=%s' % (y, x, x * y)
for y in range(1, x + 1)
]
)
for x in range(1, 10)
]
)
)
实际上展开就可以类似看成这样,只是没有找 temp 和 result 变量来赋值而已:
result = []
for x in range(1,10):
temp = []
for y in range(1,x+1):
temp.append('%s*%s=%s'%(y,x,x*y))
result.append(' '.join(temp))
result = '\n'.join(result)
print(result)
输出结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
页:
[1]