可能重复:
How to print in range?
我需要创建如下所示的网格坐标:
( 0, 0): 0 (125, 0): 1 (250, 0): 2 (375, 0): 3 (500, 0): 4 (625, 0): 5
( 0, 125): 6 (125, 125): 7 (250, 125): 8 (375, 125): 9 (500, 125): 10 (625, 125): 11
( 0, 250): 12 (125, 250): 13 (250, 250): 14 (375, 250): 15 (500, 250): 16 (625, 250): 17
( 0, 375): 18 (125, 375): 19 (250, 375): 20 (375, 375): 21 (500, 375): 22 (625, 375): 23
(x,y):我
该计划的第一行必须是: 因为我在范围24:
我只被允许使用i。循环必须没有。我可以使用2张照片和1张。该程序的最大长度为4行。
我是python中的总菜鸟。这对我来说太过分了。这是一个我正在潜伏的编程课程,试图学习一些有用的东西。这是他们上周的作业。
感谢任何帮助。特别是如果你可以简单地呈现给我。 :)
答案 0 :(得分:1)
( 0, 0): 0 (125, 0): 1 (250, 0): 2 (375, 0): 3 (500, 0): 4 (625, 0): 5
( 0, 125): 6 (125, 125): 7 (250, 125): 8 (375, 125): 9 (500, 125): 10 (625, 125): 11
( 0, 250): 12 (125, 250): 13 (250, 250): 14 (375, 250): 15 (500, 250): 16 (625, 250): 17
( 0, 375): 18 (125, 375): 19 (250, 375): 20 (375, 375): 21 (500, 375): 22 (625, 375): 23
看起来就是您要求的输出。
坚持你的1 for for循环,if语句和< = 4行的要求,我想出了:
for i in range(24):
if i%6==0 :
print ''.join(["(%3s, %3s):%3s "%(x*125, i/6*125 ,x+i) for x in range(6)])
既然你说你是一个Python菜鸟,你应该知道这个使用列表理解,我认为在这些链接中有很好的解释:
http://www.blog.pythonlibrary.org/2012/07/28/python-201-list-comprehensions/
How to read aloud Python List Comprehensions?
编辑:完全符合描述的代码:1 for循环,1 if语句,2 print语句
for i in range(24):
if i%6==0 and i!=0:
print ''
print "(%3s, %3s):%3s "%((i%6)*125, i/6*125 ,i) ,
答案 1 :(得分:0)
你在这里:
>>> print "\n".join(map("\t".join, [["(%s, %s): %s" % (x*125, y*125, y*6+x) for x in range(6)] for y in range(4)]))
(0, 0): 0 (125, 0): 1 (250, 0): 2 (375, 0): 3 (500, 0): 4 (625, 0): 5
(0, 125): 6 (125, 125): 7 (250, 125): 8 (375, 125): 9 (500, 125): 10 (625, 125): 11
(0, 250): 12 (125, 250): 13 (250, 250): 14 (375, 250): 15 (500, 250): 16 (625, 250): 17
(0, 375): 18 (125, 375): 19 (250, 375): 20 (375, 375): 21 (500, 375): 22 (625, 375): 23
有点乱......但结果看起来就像你需要的那样。
P.S。经扩展
>>> node = lambda x,y: "(%s, %s): %s" % (x*125, y*125, y*6+x)
>>> coords = [[node(x, y) for x in range(6)] for y in range(4)]
>>> print "\n".join(map("\t".join, coords))