如何用Python打印这个输出[自顶向下(偶数)][自下而上(奇数)]

2024-04-19 11:25:23 发布

您现在位置:Python中文网/ 问答频道 /正文

试着打印这种数字模式 想要这个输出:(如果a=10)

    2
    9
    4
    7
    6
    5
    8
    3
    10
    1

代码:

a=10
for i in range(1,a+1):
  if(i%2==0):
    print(i)
  elif(a-i%2!=0):
    print(a-i)

Tags: 代码inforif模式range数字print
3条回答

当您从2开始时,我建议循环也这样做,然后根据值是奇数还是偶数,打印好的东西

a = 10
for i in range(2, a + 2):
    if i % 2 == 0:
        print(i)
    else:
        print(a - i + 2)

我不知道这个问题是怎么回事,但要坚持你的方法 你的代码风格,你只需要把其他的值翻转一下,所以:

a=10
for j in range(1,a+1):
  i = j + 1 if j % 2 else j - 1
  if(i%2==0):
    print(i)
  elif(a-i%2!=0):
    print(a-i)

另一种解决方案是运行多个迭代器并同时运行它们:

a = 10
for i, j in zip(range(2, a + 2), range(a, 0, -1)):
    print(j if i % 2 else i)

或者可以创建一个包含所有项的列表:

a = 10
print([i for l in zip(range(2, a + 2, 2), range(a - 1, 0, -2)) for i in l])

第一个range在列表中向前运行,第二个range在每种情况下向后运行。你知道吗

相关问题 更多 >