比较 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)
不会更改原始对象,它会创建一个新对象。
我正在尝试创建模拟掷骰子的代码。我希望代码在掷出 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)
不会更改原始对象,它会创建一个新对象。