【问题标题】:Randomize value of given key of Dictionary in PythonPython中字典给定键的随机值
【发布时间】:2020-02-27 15:02:52
【问题描述】:

所以我正在练习 python,我正在使用一个教程,您可以在其中使用 python 创建基于终端的游戏。我试图不逐字逐句地遵循它,以便我可以更好地学习它。在里面我有 2 个字典,一个用于 'Monster' 和 'Player'

 player = {'name': 'Kevin', 'attack': 10, 'heal': 16, 'health': 100}
 monster = {'name': 'Grog', 'attack': 12, 'health': 100}

我想在一组数字之间随机化“攻击”伤害,我该如何实现?

【问题讨论】:

  • 请注意,根据 Thomas 的建议,无论适用,损坏都会产生 8 到 12 之间的随机数。

标签: python dictionary random


【解决方案1】:

您可以使用 random 来生成随机数或选择。

import random
r_num = random.randint(a,b)

返回一个随机整数 N,使得 a 。

【讨论】:

    【解决方案2】:

    您可以这样做,将您的字典更改为:

    player = {'name': 'Kevin', 'attack': [8, 12], 'heal': 16, 'health': 100}
    

    以及选择攻击伤害的代码:

    import numpy as np
    np.random.uniform(*player['attack'])
    

    10.240264593076365

    请注意,12 将被排除在范围之外。

    【讨论】:

    • 有什么办法可以得到一个没有小数的漂亮四舍五入的数字?
    • 为什么要使用像 numpy 这样的外部库来完成如此简单的任务?当您只需要一个随机整数时,使用random.randint(a, b) 似乎要好得多。
    • @hello_fr1end 是的,你说得对,我本来可以用 random.uniform,我只是太习惯 numpy。
    【解决方案3】:

    如果您想选择一个非连续范围的数字,请使用random.choice:

    import random
    random.choice(range(0,101,5))
    

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 2013-09-28
      • 2022-12-06
      • 2012-11-03
      • 2015-05-25
      • 2021-08-02
      • 2023-03-10
      • 2021-02-12
      相关资源
      最近更新 更多