使用if语句检测随机整数是奇数还是偶数

时间:2018-11-20 17:25:44

标签: python python-3.x

我正在尝试制作骰子游戏,所以我想制作骰子游戏,这样它将检测骰子上的数字是奇数还是偶数。这是我尝试过的,但是没有用。

from random import randrange

import random

import time

Even = [2, 4, 6]

Odd = [1, 3, 5]

x = random.randint(1, 6)

print("Rolling Dice...")

print("Your number is...." + str(x))

if str(x) == Even:

  print("It is an Even number!")

if str(x) == Odd:

  print("It is an Odd number!")

我需要知道如何执行if语句,并使其检测是偶数还是奇数。

3 个答案:

答案 0 :(得分:1)

要检查数字是奇数还是偶数,可能不需要偶数,奇数列表,您可以检查以下代码:

from random import randrange

import random

import time

x = random.randint(1, 6)

print("Rolling Dice...")

time.sleep(2)

print("Your number is....{}".format(x))

if x % 2 == 0:

  print("It is an Even number!")

else:

  print("It is an Odd number!")

答案 1 :(得分:0)

如果x%2 == 0:print(“这是一个偶数!”)else:print(“这是一个奇数!”)

答案 2 :(得分:0)

如果使用AND / &(而不是如此处所示的Modulo / %运算符),则可以有效地完成此操作。您还可以跳过== 0并合并打印。

from random import randrange

import random
import time

x = random.randint(1, 6)
print("Rolling Dice...")
time.sleep(2)

print("Your number is....{}\nIt is an {} number!".format(x, "Odd" if x & 1 else "Even"))

如果使用该按位AND运算符(x & 1),则由于不进行除法,因此代码可以在更少的机器周期内完成代码。从理论上讲,通过删除校验 == 0,您无需加载常数0来检查是否为零。而是可以使用寄存器标志,如果循环通过许多数字来测试偶数或奇数,则速度会更快。此外,可以将代码简化为可读性较低但效率更高的形式。如果您想更简单一些,可以使用更长的表格:

if x & 1:
    print("It is an Odd number!")
else:
    print("It is an Even number!")