在我当前的脚本中:
topfactorial = str(facorialmath2)
start = "%s! = "%(factnum)
if len(start) + len(topfactorial) > 2000:
end = " and %s more digits"%(2000-msglen)
msglen = 2000 - len(end) - len(start)
topfacotial = topfactorial[:msglen]
msg = start+topfacotial+end.format(message)
else:
msg = start+topfactorial.format(message)
await client.send_message(message.channel, msg)
我写了一个块来缩短消息的长度(由于discord的消息长度限制),所以我写了一个起始字符串(它是流动的,因为它返回作为字符串一部分的输入)、一个中间字符串(它是它们的输入数的阶乘,所以是流动的)和一个结束字符串(它告诉多少字符必须被切断)以适应信息限制,所以也流体)。我的问题是,在计算要从中间字符串中删除的字符数时,需要使用结束字符串的长度来计算所有三个字符串的总长度,并从中间字符串中删除那么多字符。但是,要截断的字符数量在第三个字符串中使用,因此这两个变量相互依赖。这不起作用,因为其中一个变量需要先定义,但不能,因为另一个没有。有什么方法可以解决这个问题吗?我想做的事有可能吗?你知道吗
先谢谢你
这不是最干净的方法,但把它放在一个循环,直到它是正确的大小。为了测试,我做了一些小改动。您需要先定义所有内容,然后再尝试定义消息长度,并创建taked变量来计算执行了多少次。如果消息在长度范围内,它将自动保持为0。循环将继续从topfactrial获取消息,直到消息长度与最大长度匹配。它还考虑到采取两位数,并将删除正确的数额。你知道吗
免责声明:绝对有一个更聪明的方法来做到这一点。你知道吗
相关问题 更多 >
编程相关推荐