如何成对打印数字...?

How to print numbers in pairs...?

我是 python 的初学者。我有一个问题:如何列出从 1 到 5(或用户输入的数字)的所有数字,并切换 n 和 n+1。

number = int(input("Give a number: "))

if the number is for example, 5, I'd want the output to be like this:

2

1

4

3

5

最好使用 while / while True / for / if - 句子,而不是函数。我编码了一个直到第 4 个的地方,还有一个只是一个无限循环的地方……这可能很简单,但我想不通。提前感谢你们的任何建议或提示。这也是我第一次使用 whosebug.com,所以不确定我是否知道如何使用这个网站。

您可以使用从 1 到 N 的简单循环,并交替打印数字的 +1 和 -1。如果 N 是奇数,则最后一个值违反规则,因此您需要确保不要超过 N。

N     = 5
delta = 1
for n in range(1,N+1):
    if n+delta<=N:  print(n+delta) # print value
    else:           print(N)       # if last value breaks the rule 
    delta = -delta                 # alternating +1, -1

2
1
4
3
5

如果你想研究更高级的东西,也可以这样做:

print(*(min(N,n+1+(-1)**n) for n in range(N)),sep="\n")

这是另一个解决方案:

N = 5
for i in range(1, N+1, 2):
    if i < N:
        print(i+1)
    print(i)