|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python3.5,win,代码:
print('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
运行后:
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
代码:
for x in range(1,10):
for y in range(1,x+1):
num = '%s*%s = %-2s' % (y,x,x*y)
print('\n'.join([' '.join(num)]))
运行后:
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 = 1 2
4 * 4 = 1 6
1 * 5 = 5
2 * 5 = 1 0
3 * 5 = 1 5
4 * 5 = 2 0
5 * 5 = 2 5
1 * 6 = 6
2 * 6 = 1 2
3 * 6 = 1 8
4 * 6 = 2 4
5 * 6 = 3 0
6 * 6 = 3 6
1 * 7 = 7
2 * 7 = 1 4
3 * 7 = 2 1
4 * 7 = 2 8
5 * 7 = 3 5
6 * 7 = 4 2
7 * 7 = 4 9
1 * 8 = 8
2 * 8 = 1 6
3 * 8 = 2 4
4 * 8 = 3 2
5 * 8 = 4 0
6 * 8 = 4 8
7 * 8 = 5 6
8 * 8 = 6 4
1 * 9 = 9
2 * 9 = 1 8
3 * 9 = 2 7
4 * 9 = 3 6
5 * 9 = 4 5
6 * 9 = 5 4
7 * 9 = 6 3
8 * 9 = 7 2
9 * 9 = 8 1
为啥这两个代码打印出来的排列顺序不一样???
print('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))从外到里好好划分一遍
1.print()打印数据后换行。数据为'\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])
2.'\n'.join()将内部元素拼接,以'\n'为分隔符。数据为[' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)],一个列表
3.' '.join() for x in range(1,10)一个列表推导式,第一层循环,将第一层循环产生的元素加入到列表里。这就是你理解出错的地方。你是在第二层循环里进行的,所以列表里只有一个元素
4.'%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)这就是式子,没什么好说的。
|
-
|