繁体   English   中英

如何编写打印出从 1 到输入数字的所有正 integer 值并且每对数字翻转的程序?

[英]How to write the program that prints out all the positive integer values from 1 up to the input number and each pair of numbers is flipped?

我的代码几乎可以工作:

number = int(input("Please type in a number: "))
 
a = 2
b = 1
 
while a in range(number) or b in range(number):
    print(a)
    print(b)
    a += 2
    b += 2

使用输入 6 它可以正常工作:

Please type in a number: 6
2
1
4
3
6
5

但是使用输入 5 它不会显示序列2 1 4 3而不是2 1 4 3 5

你可以在range函数的帮助下做到这一点。 这是一个简化版本:

acc = []
for i in range(1, number, 2):
    acc.append(i+1)
    acc.append(i)
if number % 2:  # if your number is odd then add the last number manually
    acc.append(number)

这应该可以完成您的工作。

n = int(input())
for i in range(1, n+1, 2):
    if i+1 <= n:
        print(i+1)
    print(i)

看起来您的编写方式非常接近,但是您没有在最后添加打印功能,因此您将错误的值视为输出。 此外,在这种情况下,请使用“and”而不是“or”。

number = int(input("Please type in a number: "))

a = 2
b = 1

while a in range(number) and b in range(number):
    print("Original a", a)
    print("Original b", b)
    a += 2
    print("Current a", a)
    b += 2
    print("Current b", b)
number = int(input("Please type in a number: "))        
a = 2       
b = 1         
count = 1       
while count <= number:
       
    count += 1
    if a <= number:
        print(a)
        a += 2
    if b <= number:
        print(b)
        b += 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM