检查数字是否为偶数的While循环:python2.7
我有一个while循环,可以检查用户是否输入偶数检查数字是否为偶数的While循环:python2.7,python,loops,while-loop,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 = in
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]]
欢迎提供解释和链接:)您不需要明确地将
从while循环中分离出来。在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'))
这些陈述的顺序似乎不符合顺序。如果您将语句保持在您希望它们显示的顺序,则会更容易。对于您的示例,它看起来是这样的:
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'))
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
首先,我们从用户那里获取输入。虽然还没到,但我们会继续从他们那里得到一个数字。一旦输入的数字是偶数,我们将离开while循环继续。这使我们的逻辑更简单,更容易阅读。有两件事是错误的。第一个if语句不应该在while循环之外,当您要求用户输入偶数填充时,该值不会存储在任何地方。这意味着无论用户输入什么,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代码的结果如下所示:
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'))
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