我想制作一个机器人,但是当我尝试启动机器人时出现错误:
ValueError:以 10 为基数的 int() 的文字无效:“%7786739667”
最初我以为我做错了什么,但我仔细检查了网站上的代码,一切正常,所以这里是代码本身:
import telebot
bot = telebot.TeleBot('%токен%')
@bot.message_handler(content_types=['text'])
def get_text_massages(massage):
if massage.text == 'Привет':
bot.send_message(message.from_user.id, 'Привет, как ты меня нашел?')
elif massage.text == '/help':
bot.send_message(message.from_user.id, 'Напиши привет }:)')
else:
bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
bot.polling(none_stop=True, interval=0)
(机器人如果有电报的话)
我希望你能帮忙
更改:我通过 IDE 终端完成了所有操作,我是这样做的:
1)cd \
2)cd путь к боту
3)python bot.py(бот заменял на имя файла)
更改 2:这是完整的错误行
Traceback (most recent call last):
File "bot.py", line 4, in <module>
bot = telebot.TeleBot('%7786739667:остальной_токен%')
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\__init__.py", line 198, in __init__
self.bot_id: Union[int, None] = util.extract_bot_id(self.token) # subject to change in future, unspecified
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\util.py", line 706, in extract_bot_id
return int(token.split(':')[0])
ValueError: invalid literal for int() with base 10: '%7786739667'
编辑 3:感谢 @CrazyElf 和 Monica 的 Revolucion。但是出现了新的错误,看起来像这样
Traceback (most recent call last):
File "bot.py", line 17, in <module>
bot.polling(none_stop=True, interval=0)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\__init__.py", line 1198, in polling
self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\__init__.py", line 1273, in __threaded_polling
raise e
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\__init__.py", line 1235, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\util.py", line 150, in raise_exceptions
raise self.exception_info
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\util.py", line 93, in run
task(*args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\__init__.py", line 8945, in _run_middlewares_and_handler
result = handler['function'](message)
File "bot.py", line 14, in get_text_massages
bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
NameError: name 'message' is not defined
一般来说,是这样的(我又用同样的方式检查了网站上的代码)
更改 5:一切与之前的更改相同,没有问题
当代码中的某些内容尝试将非数字字符串转换为整数时,通常会发生此错误。
注意这一行:
替换
%токен%为您的真实令牌,周围不带任何百分号,例如: