如何创建随机范围,但排除特定数字?

Sha*_*nNZ 2 python random if-statement range while-loop

我有以下代码:

while True:
    if var_p1 != "0":
        break
    else:
        import random
        var_p1 = random.randint(-5,5)
Run Code Online (Sandbox Code Playgroud)

我希望循环重复,直到var_p1等于零.但是,我一直都是零.我究竟做错了什么?

Mar*_*oma 8

回答标题中的问题,而不是真正的问题(Daniel Roseman回答):

如何创建随机范围,但排除特定数字?

使用random.choice:

import random
allowed_values = list(range(-5, 5+1))
allowed_values.remove(0)

# can be anything in {-5, ..., 5} \ {0}:
random_value = random.choice(allowed_values)  
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 5

"0" != 0.

您正在与字符串进行比较,但randint会为您提供一个整数。