使用函数和随机数

时间:2018-11-11 15:15:42

标签: python

我有一个问题:

程序运行时,它将随机选择一个1到6之间的数字。(或您喜欢的其他整数-模子上的边数取决于您。)该程序将打印该数字。然后,它会询问您是否要再次滚动。对于这个项目,您需要设置骰子可以产生的最小和最大数目。对于普通骰子,这意味着最少为1,最多为6。您还需要一个函数,该函数随机获取该范围内的数字并打印出来。

这是我到目前为止所做的:

import random

x = random.randint(1,6)

print("You roll a die ", x)
new_try = input("\n\n Do you want to roll a die again?")

if str(new_try) == 'yes':

    print("You roll a die ", x)

else:

    print("Cool game!")

我仍然得到相同的数字:(

4 个答案:

答案 0 :(得分:0)

我认为您每次可以进行新的尝试时,可以设置不同的种子。

答案 1 :(得分:0)

您无需第二次更改x,而只需再次打印即可,得到相同的结果。这是固定版本的代码:

import random

x = random.randint(1, 6)

print("You roll a die", x)

new_try = input("\n\n Do you want to roll again? ")

if new_try == 'yes':
    x = random.randint(1, 6)
    print("You roll a die", x)
else:
    print("Cool game!")

如果要为其使用功能,则可以多次执行:

import random

def roll_dice():
    x = random.randint(1, 6)
    print("Dice was rolled: " + str(x))
    try_again = input("Do you want to try again? ")
    if try_again == 'yes':
        roll_dice()

roll_dice()

答案 2 :(得分:0)

x不是骰子,即random.randint(1,6)。因此,在x = random.randint(1,6)之后,x存储单个骰子的 result (发生得较早),并且可以在将来的任何时候提供该单个结果。因此x存储一个数字,而不是存储它应该随机生成的事实。

如果您想要一个用于掷骰子的功能,则第一次尝试将是def

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

具有此功能的所有后续print(diceroll())(请注意,这是一个函数调用diceroll())将打印不同滚动的结果(并且可能仅因巧合而相等)。或者,您可以将单个骰子的结果再次存储为x=diceroll(),以便将来可以重复使用(假设您要将其与用户的猜测进行比较并打印出来)

侧面说明:从技术上讲,您也可以将函数存储在变量中,x=diceroll将存储该函数,因此x不是数字,而是掷骰子的动作,必须是称为print(x())之类的函数。

答案 3 :(得分:0)

如果要在不同时间产生不同的数字,则必须使用种子值。这是一个示例说明:

import random
random.seed( 3 )
print "Random number with seed 3 :", random.random() #will generate a random number 
#if you want to use the same random number once again in your program
random.seed( 3 )
random.random()

我不会为您制作程序。我已经向您解释了这个概念。现在只需实施即可。