比较 int 变量

Comparing variables of int

我正在尝试创建模拟掷骰子的代码。我希望代码在掷出 1 时停止,但我的程序继续掷骰子。

import random

def rollDie(die):
    die = random.randint(1,6)
    print(die)

die1 = 0

while die1 != 1:
    rollDie(die1)

我怀疑我的代码正在比较 1 的对象 ID 和 die1 的对象 ID。据我所知,“!=”是合适的 "not equal to" 比较运算符。

那么我做错了什么以及如何比较变量的值与其对象 ID?

您需要更新 die1 的值,使用您的函数最简单的方法是在函数中 return 并将 return 值分配给 die1:

def rollDie():
    return random.randint(1,6)

die1 = 0

while die1 != 1:
    die1 = rollDie()
    print(die1)

die1 = rollDie() 每次循环都会更新,您的代码始终将 die1 保持在初始值 0

整数是 不可变的 因此将 die1 传递给函数并设置 die = random.randint(1,6) 不会更改原始对象,它会创建一个新对象。