微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想用python为电报机器人编写一个计时器该机器人从用户的味精str获取“时间”如何将“时间”从味精转换为int类型?

如何解决我想用python为电报机器人编写一个计时器该机器人从用户的味精str获取“时间”如何将“时间”从味精转换为int类型?

我编写了这段代码,我需要从用户的消息(字符串类型)中获取“本地时间”。 但是我需要像整数这样的计时器。 “ local_time = int(msg.from_user.id,msg.text)”中存在TypeError。 我该如何解决

backupery

local_time = int(msg.from_user.id,msg.text)

TypeError:“ str”对象不能解释为整数

解决方法

int函数需要将文本作为第一个参数,第二个参数(可选)是基数(如果您使用Python解释具有不同基数的字符串(即binany),则需要此参数

local_time = int(msg.text)

msg.text是用户输入(必须为数字),并将其强制转换为int。

如果通过命令处理程序处理输入,则需要考虑文本消息包含命令/start 12
一种选择是删除命令并获得以下值

# remove '/start'
interval = msg.text[7:]
local_time = int(interval)
print(local_time)
,

首先

在异步函数中停止使用time.sleep()。 请改用await asyncio.sleep()

第二

了解python的基础。

第三

@dp.message_handler(commands=['timer'])
async def timer_handler(message: Message):
    # get args from message (it's `str` type!) 
    timer_string = message.get_args()
    
    # let's try to convert it to `int`
    try:
        timer = int(timer_string)
    except (ValueError,TypeError):
        return await message.answer("Please set a digit for timer. E.g.: /timer 5")
    
    # success! timer is set!
    await message.answer(f'Timer set for {timer}')
    
    # sleeping (this way,instead of blocking `time.sleep`)
    await asyncio.sleep(timer)
    
    # it's time to send message
    await message.answer("It's time! :)")

P.S .:有人,请添加aiogram标签

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。