如何在 Python 中检查数字是否为偶数

how to check if a number is even or not in python

提问人:rhodrhid 提问时间:12/4/2022 更新时间:12/4/2022 访问量:80

问:

我正在尝试制作一个 collatz 猜想程序,但我不知道如何检查偶数 这是我目前的代码

    elif (original_collatz % 2) == 0:
        new_collatz = collatz/2

任何人都知道如何检查

我用模数尝试过,但可以弄清楚它是如何工作的,我的程序只是忽略了这一行,整个程序: `

#collatz program
import time

collatz = 7
original_collatz = collatz
new_collatz = collatz

while True:
    if original_collatz % 2 == 1:
        new_collatz = (collatz * 3) + 1

    elif (original_collatz % 2) == 0:
        new_collatz = collatz/2

    collatz = new_collatz

    print(collatz)

    if collatz == 1:
        print('woo hoo')
        original_collatz += 1

    time.sleep(1)
Python 整数 collatz

评论

1赞 John Coleman 12/4/2022
问题不在于你的奇偶校验。问题是(也许还有其他问题)。应该是因为您需要整数除法。collatz/2collatz//2
1赞 Swifty 12/4/2022
你从不更新,所以你的测试总是返回相同的值......我想你想用 ;实际上,您应该认真考虑您的变量以及它们的用途!你只需要 2 个,而不是 3 个。original_collatzoriginal_collatzcollatz
1赞 Carl_M 12/4/2022
如果任何答案为您的问题提供了解决方案,我敢肯定,个人会感谢您接受他们的努力的答案。

答:

1赞 WIP 12/4/2022 #1

问题不在于“你的程序忽略了这些行”,而在于你测试了其奇偶校验不会改变。original_collatz

  • 您需要检查奇偶校验collatz
  • 当除以 2 时,您需要使用整数除法 (),否则将变成浮点数。//collatz
  • 你真的不需要用作中间体,你可以直接覆盖。new_collatzcollatz

下面是一个固定示例:

# collatz program
import time

collatz = 7
original_collatz = collatz
new_collatz = collatz

while True:
    if collatz % 2 == 1:
        new_collatz = (collatz * 3) + 1

    else:
        new_collatz = collatz // 2

    collatz = new_collatz

    print(collatz)

    if collatz == 1:
        print('woo hoo')
        original_collatz += 1
        collatz = original_collatz

    time.sleep(1)
1赞 Andreas 12/4/2022 #2

工作实例:

import time

collatz_init = 7
collatz = collatz_init

while True:
    if collatz % 2 == 1:
        collatz = (collatz * 3) + 1
    else:
        collatz //= 2

    print(collatz)

    if collatz == 1:
        print('woo hoo')
        collatz_init += 1
        collatz = collatz_init

    time.sleep(1)

评论

2赞 Carl_M 12/4/2022
只是提醒一下,当您记住真值测试时,它与真值测试相同,并且更加蟒蛇if collatz % 2if collatz % 2 == 1