Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 奇数或偶数->;重复此步骤,直到满足条件_Python_Python 3.x - Fatal编程技术网

Python 奇数或偶数->;重复此步骤,直到满足条件

Python 奇数或偶数->;重复此步骤,直到满足条件,python,python-3.x,Python,Python 3.x,我知道这是非常基本的,但有人能告诉我如何扩展代码,只要用户输入一个非零的数字,就可以反复询问有关数字的问题。但如果他们输入0,它应该停止询问并说再见。 我试着用WHILE来改进它,但我不知道如何强迫它反复询问-提前谢谢你 print("odd/even checker") your_number = input("gimme your number ") number = int(your_number) left = number % 2 while

我知道这是非常基本的,但有人能告诉我如何扩展代码,只要用户输入一个非零的数字,就可以反复询问有关数字的问题。但如果他们输入0,它应该停止询问并说再见。 我试着用WHILE来改进它,但我不知道如何强迫它反复询问-提前谢谢你

print("odd/even checker")

your_number = input("gimme your number ")
number = int(your_number)
left = number % 2

while number != 0:
    if left > 0:
        print("odd")
    else:
        print("even! ")
        break
print("thanks, bye")

将整个代码放在while循环中,并将
打印(“谢谢!再见!”)
带到开头:

print("odd/even checker")
while 1 :
    number = input("gimme your number! :>  ")
    declared_number = int(number)
    if declared_number == 0:
        print("Thanks! Bye!")
        break
    left = declared_number % 2

    if left > 0:
        print("odd")
    else:
        print("even" )
使用以下命令:

print("odd/even checker")
while True:

    number = input("gimme your number! :>  ")
    declared_number = int(number)
    if declared_number != 0:
        left = declared_number % 2

        if left > 0:
            print("odd")
        else:
            print("even" )

    else:

        print("Thanks! Bye!")
        break

使用
while
循环

打印(“奇偶校验”)
尽管如此:
number=输入(“给我你的号码!:>”)
声明的\u编号=整数(编号)
如果声明的_数==0:
打破
左=声明的\u编号%2
如果左侧>0:
打印(“奇数”)
其他:
打印(“偶数”)
打印(“谢谢!再见!”)

实现这一点的方法很少,但核心仍然是您需要从循环中的用户那里获取输入,然后您可以检查退出的条件。一种方法是:

print("odd/even checker")

# Predefine a value that will pass the condition check in the `while` below
declared_number = -1

while declared_number != 0:
    # from now on, the value will be updated by the user
    number = input("gimme your number! :>  ")

    declared_number = int(number)
    left = declared_number % 2
  
    if left > 0:
        print("odd")
    else:
        print("even" )

print("Thanks! Bye!")
另一种方法是启动无限循环,如果不满足条件,则使用
break
退出:

print("odd/even checker")

while True:  # loop forever
    number = input("gimme your number! :>  ")
    declared_number = int(number)
    
    if declared_number == 0:
       # explicitely break the loop
       break

    left = declared_number % 2

    if left > 0:
        print("odd")
    else:
        print("even" )

print("Thanks! Bye!")

解决这个问题的基本方法是

num = int(input("Enter a number: "))
while (num != 0):
    if (num % 2 == 0):
        print('even')
    else:
        print('odd')
    num = int(input('Enter a number again: '))
if num == 0:
    print('Goodbye')
这个输出

Enter a number: 5
odd
Enter a number again: 2
even
Enter a number again: 0
Goodbye
while循环外部的if语句是可选的。代码也可以写成

1 num = int(input("Enter a number: "))
2 while (num != 0):
3     if (num % 2 == 0):
4         print('even')
5     else:
6         print('odd')
7     num = int(input('Enter a number again: '))
8 print('Goodbye')

这是因为当控件到达第8行时,
num
变量肯定是0。

现在这将是完整的,对GO有好处。您使用该
声明的\u number>0更改了程序的逻辑test@DivyesshMaheshwari谢谢你投票否决我的答案你的代码只检查正数。OP没有检查,也不需要。现在好多了!我没有投反对票,但我的两个猜测是使用
while 1
而不是
while True
;最重要的是,这个代码永远循环:你需要一个
中断
的地方。我没有否决投票you@sal谢谢你的指点,编辑。这两个是不相等的。在第一个示例中,
0
输入在打印“偶数”之前不会终止循环。在第二种情况下,它会立即中断循环。我认为0是偶数。是的,我同意你的看法。我的观点只是这两种行为不同——我不是说一种更好或更糟。不用担心,谢谢你指出这一点。没有显示WHILE用法,所以。。除了“[while]被错误地使用”之外,没什么好说的。好了,现在清楚了。非常感谢。