我是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)
您的代码存在几个问题:
- 你从不使用
counter
,即使你定义了它。 - 您有一个不必要的嵌套
while
循环。如果用户输入的数字是偶数,则您的代码将继续永远运行while
循环。 - 您错误地使用了
while
循环中可用的else
子句。有关更多详细信息,请参阅此帖子。
以下是更正后的代码:
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')
请注意,我在上面选择使用无限循环,测试用户输入是否在循环内为零,然后中断,而不是在循环头中测试这种情况。在我看来,这更干净,但两者在功能上是等效的。
您已经拥有继续的部分,直到用户退出并0
条目。 在该循环中,您只需要一个简单的if
:
while num != 0:
num=int(input("Enter number:"))
if num % 2 == 0:
print ("Even", num)
else:
print ("Odd", num)
我省略了counter
增量;我不确定为什么它会在程序中,因为您从不使用它。
使用input()
和如果它只有数字特定的输入,您可以使用int(input())
或使用If/else
语句来检查
您的代码没有缩进,您需要将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