解决和修正 如何关闭呢? :d类型错误:无法转换“诠释”对象隐含STR(蟒蛇)
我一直没有停止最近在添加新的特性我 聊天机器人,偶尔遇到,我需要在援助问题 我看了其他建议的线程已经。
短解释:
试图让它选择1到n之间的数字。用户可以使用的命令是/ roll 20,这将返回1-20。我试图能够取代参数random.randint(n)
而n =整数。对不起,如果我的解释不好。经过不间断的工作。
elif used_prefix and cmd.lower() == "roll" and self.rank(user) >= 1:
args = args.lower()
if len(args) == 0: post("Select a dice amount(6,8,10,20)")
else:
if args == "6": post("Rolled %s" % random.randint(1,6))
elif args == "8": post("Rolled %s" % random.randint(1,8))
elif args == "10": post("Rolled %s" % random.randint(1,10))
elif args == "20": post("Rolled %s" % random.randint(1,20))
else: post("Select a dice amount(6,8,10,20")
最终结果代码(Python)的尝试后:
elif used_prefix and cmd.lower() == "roll" and self.rank(user) >= 1:
args = args.lower()
n = args.lower()
if len(args) == 0: post("Select a dice amount(6,8,10,20)")
else:
post("Rolled %s" % str(random.randint(1,n)))
回溯
[STATUS] Setting status Online...
[LOAD] Loading Errors...
[LOAD] Loading Locks...
[SAVE] Appending default...
Connected
Connected
Youcoldyet(4)-[devlcars]:[/roll 20](Monday, 11 May 2015, 01:07:23 AM)
[ERR] Fatal error.
(C:\Python34\lib\random.py:218) Can't convert 'int' object to str implicitly
Traceback (most recent call last):
File "C:\Users\Administrator\Downloads\hmm\bot.py", line 575, in <module>
TestBot.easy_start(rooms, "Hidden", "Hidden")
File "C:\Users\Administrator\Downloads\hmm\ck.py", line 1278, in easy_start
self.main()
File "C:\Users\Administrator\Downloads\hmm\ck.py", line 1254, in main
con._feed(data)
File "C:\Users\Administrator\Downloads\hmm\ck.py", line 550, in _feed
self._process(food.decode().rstrip("\r\n")) #numnumz ;3
File "C:\Users\Administrator\Downloads\hmm\ck.py", line 560, in _process
getattr(self, func)(args)
File "C:\Users\Administrator\Downloads\hmm\ck.py", line 670, in rcmd_u
self._callEvent("onMessage", msg.user, msg)
File "C:\Users\Administrator\Downloads\hmm\ck.py", line 957, in _callEvent
getattr(self.mgr, evt)(self, *args, **kw)
File "C:\Users\Administrator\Downloads\hmm\bot.py", line 447, in onMessage
post("Rolled %s" % str(random.randint(1,n)))
File "C:\Python34\lib\random.py", line 218, in randint
return self.randrange(a, b+1)
TypeError: Can't convert 'int' object to str implicitly
[96m[SAV][0m Saving Rooms..
[STATUS] Setting status Offline...
Waiting 30 seconds for you to read the error..
原代码(蟒蛇)尝试之前
我能做些什么,并尝试:
我想能够得到参数传递给更换random.randint(n)
而N =整数。我可以尝试做n = args.lower()
但是,当我这样做时,它返回一个值错误,因为我是 无法获得第二个选项,并且这会强制 用户使用命令/ roll n,n。我想尝试 设置新代码为random.randint(1,n)
然后设置n = args.lower()
,这可能允许卷选择。
更新
想我的想法,它只是返回:
TypeError: Can't convert 'int' object to str implicitly
我甚至进行更改线路post("Rolled %s" % str(random.randint(1,n)))
它未能
哦,如果你想知道这个是角色扮演目的的滚动命令 欢迎任何及所有反馈/建议。我希望能解决这个问题。
'post'是什么? –
如果您不只是切断错误消息,而且还会显示整个堆栈跟踪以及导致错误的行号,那么这对您来说会更容易。 – kirelagin
@ReutSharabani Post通过机器人发送消息而不是控制台。这个SSCCE很难做到。 – user3745348