用Python写机器人时,怎么让用户输入带空格的内容(比如地址)?
6 个回答
Telegram机器人接收用户输入,需要message.text来获取全部内容。
比如message.text = update.message.text,这样就可以获取用户输入的整段内容,包括带空格的地址。
终端输入:input(),Telegram交互:事件处理。
用input()获取不了带空格的数据。可以用get()方法,并且用split()函数分割,然后拼接成你所需要的数据格式。这样就可以获取带空格地址的数据了。另外,在处理用户输入的数据时,最好加上异常处理,这样可以防止程序出错。这样你的代码就更加健壮。
在Telegram机器人的开发过程中,input()不能接收消息。你需要使用bot.polling()来监听message.text属性。用户发送的消息可以带有空格,直接使用message.text即可获取完整信息。例如,当用户发送“北京市朝阳区”时,message.text就是这个完整的字符串。只需在消息处理函数中获取这个属性。
Telegram机器人通过message.text获取用户输入;input()为本地调试使用;接收到的地址会自动带有空格,直接取值。
Telegram机器人获取用户消息时直接使用message.text获取全部,input()是本地测试用的,如果用户发送“北京市朝阳区”,message.text可以直接获取到“北京市朝阳区”,无需做任何处理。监听消息使用@bot.message_handler()装饰器即可。
message.text获取用户输入,input()只是本地测试用。Telegram机器人处理消息是事件回调,用户发啥你收啥,不用考虑有没有空格,直接取message.text里的原始字符串。
比如:当用户说“上海市浦东新区张江路123号”时,你直接用message.text存数据库或做别的处理,不要自己搞input()模拟输入。框架会帮你自动把整段文字作为参数传进来。