关于python:使用if语句检测随机整数是奇数还是偶数

Detecting if a random integer is odd or even using an if statement

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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语句,并使其检测它是偶数还是奇数。


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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!")


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

1
2
3
4
5
6
7
8
9
10
11
from random import randrange

import random
import time

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

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

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

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

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