(Python) while 循环破坏了我的 random_number
(Python) while loop is breaking my random_number
所以我正在做一个项目,它基本上从 1 - 6 中选择一个随机数作为一个迷你项目。
在大多数情况下,它是有效的。但是当它循环回来时,它似乎继续滚动相同的数字。
这是我的意思的截图
如您所见,骰子点数一直保持不变。你能看出我的代码有什么问题吗?
# Useful module for selecting random numbers
import random
# Loop program back to here once user presses anything
loop = 1
#Chooses random number between 1 - 6
Random_Number = (random.choice([1,2,3,4,5,6]))
while (loop < 10):
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number)
input("Press any key to roll again")
print ("===============================")
#looping back to "loop = 1"
loop = loop + 1
此代码选择随机数一次,然后只打印 10 次。如果你每次都想要不同的随机数,你应该将随机选择移动到循环内:
while (loop < 10):
#Chooses random number between 1 - 6
Random_Number = (random.choice([1,2,3,4,5,6]))
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number)
input("Press any key to roll again")
print ("===============================")
#looping back to "loop = 1"
loop = loop + 1
你只设置了一次 Random_Number 的值,然后在每个循环中显示它。
固定
# Useful module for selecting random numbers
import random
# Loop program back to here once user presses anything
loop = 1
#Chooses random number between 1 - 6
#Random_Number = (random.choice([1,2,3,4,5,6]))
while (loop < 10):
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", (random.choice([1,2,3,4,5,6])))
#input("Press any key to roll again")
print ("===============================")
#looping back to "loop = 1"
您正在循环外生成 Random_Number
一次。
尝试这样的事情
while (loop < 10):
Random_Number = (random.choice([1,2,3,4,5,6]))
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number)
input("Press any key to roll again")
print ("===============================")
loop = loop + 1
因为你只生成一次随机数。
应该是
...
while (loop < 10):
Random_Number = (random.choice([1,2,3,4,5,6]))
....
也不要用大写字母命名变量 Random_Number 使用 random_number
您需要了解 Python(和类似的语言)存储值,而不是表达式。如果写a = 2 + 2
,变量a
中没有加法,也没有2
;只有数字 4。
你的情况完全一样:你以为你定义了 Random_Number
作为旁边表达式的别名,实际上你只存储了一个数字。
您当然可以通过在循环内调用 random.choice()
来解决问题——因为已经建议了大约 10 个答案。但要完成您 想要 要做的事情,请定义一个以您指定的方式选择数字的函数。每次调用函数时都会执行函数体。
def random_number():
return random.choice([1,2,3,4,5,6])
while (loop < 10):
print("you rolled", random_number())
loop += 1
如果您不想在每次迭代时都重新定义一个随机数:
# Useful module for selecting random numbers
import random
# Loop program back to here once user presses anything
loop = 1
#Chooses random number between 1 - 6
Random_Number = lambda : random.choice([1,2,3,4,5,6])
while (loop < 10):
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number())
print ("===============================")
#looping back to "loop = 1"
loop = loop + 1
所以我正在做一个项目,它基本上从 1 - 6 中选择一个随机数作为一个迷你项目。
在大多数情况下,它是有效的。但是当它循环回来时,它似乎继续滚动相同的数字。
这是我的意思的截图
如您所见,骰子点数一直保持不变。你能看出我的代码有什么问题吗?
# Useful module for selecting random numbers
import random
# Loop program back to here once user presses anything
loop = 1
#Chooses random number between 1 - 6
Random_Number = (random.choice([1,2,3,4,5,6]))
while (loop < 10):
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number)
input("Press any key to roll again")
print ("===============================")
#looping back to "loop = 1"
loop = loop + 1
此代码选择随机数一次,然后只打印 10 次。如果你每次都想要不同的随机数,你应该将随机选择移动到循环内:
while (loop < 10):
#Chooses random number between 1 - 6
Random_Number = (random.choice([1,2,3,4,5,6]))
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number)
input("Press any key to roll again")
print ("===============================")
#looping back to "loop = 1"
loop = loop + 1
你只设置了一次 Random_Number 的值,然后在每个循环中显示它。
固定
# Useful module for selecting random numbers
import random
# Loop program back to here once user presses anything
loop = 1
#Chooses random number between 1 - 6
#Random_Number = (random.choice([1,2,3,4,5,6]))
while (loop < 10):
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", (random.choice([1,2,3,4,5,6])))
#input("Press any key to roll again")
print ("===============================")
#looping back to "loop = 1"
您正在循环外生成 Random_Number
一次。
尝试这样的事情
while (loop < 10):
Random_Number = (random.choice([1,2,3,4,5,6]))
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number)
input("Press any key to roll again")
print ("===============================")
loop = loop + 1
因为你只生成一次随机数。 应该是
...
while (loop < 10):
Random_Number = (random.choice([1,2,3,4,5,6]))
....
也不要用大写字母命名变量 Random_Number 使用 random_number
您需要了解 Python(和类似的语言)存储值,而不是表达式。如果写a = 2 + 2
,变量a
中没有加法,也没有2
;只有数字 4。
你的情况完全一样:你以为你定义了 Random_Number
作为旁边表达式的别名,实际上你只存储了一个数字。
您当然可以通过在循环内调用 random.choice()
来解决问题——因为已经建议了大约 10 个答案。但要完成您 想要 要做的事情,请定义一个以您指定的方式选择数字的函数。每次调用函数时都会执行函数体。
def random_number():
return random.choice([1,2,3,4,5,6])
while (loop < 10):
print("you rolled", random_number())
loop += 1
如果您不想在每次迭代时都重新定义一个随机数:
# Useful module for selecting random numbers
import random
# Loop program back to here once user presses anything
loop = 1
#Chooses random number between 1 - 6
Random_Number = lambda : random.choice([1,2,3,4,5,6])
while (loop < 10):
#Printing what the user sees
print ("===============================")
print ("Your random dice number is:", Random_Number())
print ("===============================")
#looping back to "loop = 1"
loop = loop + 1