创建一个python程序,询问用户一个数字 - 甚至是奇数

时间:2017-07-25 00:13:26

标签: python user-input

我是python的新手,我正在上暑期在线课程学习python。

不幸的是,我们的教授并没有做太多的事情。我们有一项任务要求我们制作一个程序(python),它向用户询问一个数字,然后确定该数字是偶数还是奇数。程序需要不断询问用户输入,直到用户达到零。好吧,我实际上交了一个不起作用的代码,我得到了100%的任务。毋庸置疑,我们的教授是懒惰的,并没有多大帮助。据我所知,我想知道正确的方法!这是我拥有/拥有的。我很尴尬,因为我知道这可能很容易!

counter = 1
num = 1
while num != 0:
counter = counter + 1
   num=int(input("Enter number:"))
   while num % 2 == 0:
   print ("Even", num)
else:
    print ("Odd", num)

4 个答案:

答案 0 :(得分:2)

您的代码存在一些问题:

  • 您永远不会使用counter,即使您已定义它。
  • 您有一个不必要的嵌套while循环。如果用户输入的数字是偶数,那么您的代码将继续永远运行while循环。
  • 您错误地使用else循环可用的while子句。有关详细信息,请参阅this post

以下是更正后的代码:

while True:
    # Get a number from the user.
    number = int(input('enter a number: '))

    # If the number is zero, then break from the while loop
    # so the program can end.
    if number == 0:
        break

    # Test if the number given is even. If so, let the
    # user know the number was even.
    if number % 2 == 0:
        print('The number', number, 'is even')
    # Otherwise, we know the number is odd. Let the user know this.
    else:
        print('The number', number, 'is odd')

请注意,我选择使用无限循环,测试用户输入是否在循环内部为零,然后中断,而不是在循环头中测试此条件。在我看来,这是更清洁,但两者在功能上是等价的。

答案 1 :(得分:1)

在用户退出0条目之前,您已经拥有了继续的部分。在该循环中,您只需要一个简单的if

while num != 0:
    num=int(input("Enter number:"))
    if num % 2 == 0:
        print ("Even", num)
    else:
        print ("Odd", num)

我遗漏了counter增量;我不确定为什么会在程序中,因为你从不使用它。

答案 2 :(得分:0)

使用input()如果只有其特定数字输入,您可以使用int(input())或使用If/else语句检查

答案 3 :(得分:0)

您的代码没有缩进,您需要将if条件与else一起使用,而不是while

counter = 1
num = 1
while num != 0:
    counter = counter + 1
    num = int(input("Enter number:"))
    if num % 2 == 0:
       print ("Even", num)
    else:
       print ("Odd", num)

示例运行

Enter number:1
Odd 1
Enter number:2
Even 2
Enter number:3
Odd 3
Enter number:4
Even 4
Enter number:5
Odd 5
Enter number:6
Even 6
Enter number:0
Even 0