首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于python的不和谐机器人随机数发生器

基于python的不和谐机器人随机数发生器
EN

Stack Overflow用户
提问于 2018-03-30 15:44:27
回答 1查看 4.6K关注 0票数 1

我想要做的是,当有人输入命令!随机(参数),我希望机器人生成一个数字之间的1和他们作为参数。但是每当我尝试这样做的时候,它给了我大约6个不同的错误,它们都是非常长的,对我来说没有任何意义。下面是此命令的当前代码。

代码语言:javascript
运行
复制
@Bot.command(pass_context=True)
async def random1and10(ctx, number):
    arg = random.randint(1, number)
    if number:
        await Bot.say(arg)
    else:
        await Bot.say('Please select a valid number')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-30 16:41:59

我猜number是作为字符串传递的,所以:

  • 在将其传递给randint之前,需要将其转换为整数。
  • 可能需要在“说”之前再把它转换成字符串。

更重要的是,您没有使用正确的方法检查错误的整数值;if number永远不会是False,因为randint调用只返回大于0的整数(或引发错误)。

固定版本如下所示:

代码语言:javascript
运行
复制
@Bot.command(pass_context=True)
async def random1and10(ctx, number):
    try:
        arg = random.randint(1, int(number))
    except ValueError:
        await Bot.say("Invalid number")
    else:
        await Bot.say(str(arg))

你的里程可能会不一样,我没开过。我不确定那个装饰的函数签名。

每当我尝试这样做,它给我大约6个不同的错误,是非常长,对我来说没有任何意义。

也许他们对其他人来说是有意义的:)我对这个网站还比较陌生,但是我认为把他们包括在你的帖子里会更好。干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49577305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档