while循环检查数字是否是偶数:Python 2.7

时间:2017-07-21 19:16:17

标签: python loops while-loop

我有一个while循环,应检查用户是否输入偶数。

pop_size = int(input('Enter an even population size:'))

if pop_size % 2 == 0:
     print int(input('Enter an organism length'))
while pop_size % 2 != 0:
    print int(input('Enter an EVEN population'))
    break 
length = int(input('Enter an organism length'))

我不知道在哪里放长度或休息。

Enter an even population size: 3
Enter an EVEN population 4
4
Enter an organism length 2
[[0, 1], [1, 0], [1, 1]]

这就是它的回报。

但如果我这样做:

Enter an even population size: 3
Enter an EVEN population 3
3
Enter an organism length 2
[[1, 0], [1, 0], [0, 0]]

即使代码不是偶数,代码仍会生成有机体。

我需要得到的输出是:

Enter an even population size: 3
Enter an EVEN population 3
Enter an EVEN population 5
Enter an EVEN population 4
Enter an organism length 2
[[1, 0], [1, 0], [0, 0]] 

感谢解释和链接:)

3 个答案:

答案 0 :(得分:1)

您不需要在while循环中明确break。在while循环中更新pop_size就足够了。它可能看起来像:

pop_size = int(input('Enter an even population size:'))
while pop_size % 2 != 0:
    pop_size = int(input('Enter an EVEN population'))
length = int(input('Enter an organism length'))

答案 1 :(得分:1)

似乎语句的顺序不正常。如果您按照希望显示的顺序保留语句会更容易。对于您的示例,它看起来像这样:

pop_size = int(input('Enter an even population size:'))
while pop_size % 2 != 0:
    pop_size=int(input('Enter an EVEN population'))

length = int(input('Enter an organism length'))

首先我们从用户那里获取输入。虽然我们不会继续从他们那里得到一个数字。一旦输入的数字是偶数,我们将离开while循环并继续前进。这使我们的逻辑更简单,更容易阅读。

答案 2 :(得分:1)

有几件事情有误。第一个if语句不应该在while循环之外,并且当您要求用户输入EVEN填充时,该值不会存储在任何位置。这意味着无论用户输入什么,while循环都会中断。我不懂Python,但这就是Java中代码的样子。它基本上是一样的,只需做出必要的改变。

    int in, length;
    boolean var = true;
    Scanner input = new Scanner(System.in);
    System.out.print("Enter an even population size: ");
    in = input.nextInt();

    while(var){
            if(in % 2 == 0){
                break;
            }
            else{
                System.out.print("Enter an EVEN number: ");
                in = input.nextInt();
            }
    }
    System.out.print("Enter organism length: ");
    length = input.nextInt();

我的Java代码的结果如下所示:

           Enter an even population size: 1
           Enter an EVEN number: 5
           Enter an EVEN number: 3
           Enter an EVEN number: 9
           Enter an EVEN number: 4
           Enter organism length: 5