RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-652257

An9r3z1k's questions

Martin Hope
An9r3z1k
Asked: 2025-01-08 23:41:45 +0000 UTC

类型错误:“str”对象不可调用

  • 6

我正在为 Telegram 频道制作一个机器人,它给了我错误:

类型错误:“str”对象不可调用

这是代码:

import telebot
from telebot import types
import random


bot = telebot.TeleBot('токен')
bal = 2
farm = random.randint(1, 5)
chisel = random.randint(1, 10)
# ans = ''.format(''.join(answers))


@bot.message_handler(commands=['start', 'restart'])
def start(m):
    bot.send_message(m.chat.id, f'Привет {m.from_user.first_name}, меня зовут Лёша.\nНапиши /gl чтобы начать')


@bot.message_handler(commands=['gl'])
def gl(m):
    mk = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton('Помощь')
    mk.add(btn1)
    bot.send_message(m.chat.id, 'Выбери одну из игр\n'
                                'Угадай число /gtc\n'
                                'Угадай слово /gtw\n'
                                'Угадай игру /gtg\n'
                                'Крестики-нолики /xo', reply_markup=mk)
    if m.text == 'Помощь':
        bot.send_message(m.chat.id, 'Напишите /help')


@bot.message_handler(commands=['gtc'])
def gtc(m):
    mk = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton('↩Назад')
    btn2 = types.KeyboardButton('Готово')
    mk.add(btn1, btn2)
    answers = []
    answer = m.text
    answers.append(answer)
    mss = bot.send_message(m.chat.id, 'Напиши ставку: (Мин. ставка 2)', reply_markup=mk)
    bot.register_next_step_handler(mss, answer)
    if m.text == 'Готово':
        mk = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton('↩Назад')
        btn2 = types.KeyboardButton('Готово')
        mk.add(btn1, btn2)
        answer1 = m.text
        answers.append(answer1)
        mss = bot.send_message(m.chat.id, 'Напиши любое число: (1-10)', reply_markup=mk)
        bot.register_next_step_handler(mss, answer1)
        if m.text == 'Готово':
            mk = types.ReplyKeyboardMarkup(resize_keyboard=True)
            btn1 = types.KeyboardButton('На главную')
            mk.add(btn1)
            if random == answer1:
                bot.send_message(m.chat.id, f'🎉Вы выйграли{answer * 2}\nВаш баланс{answer * 2 + bal}', reply_markup=mk)
            elif random < answer1 and random > answer1:
                bot.send_message(m.chat.id, f'Увы вы проигарли{answer}\nВаш баланс{answer - bal}')
        elif m.text == 'На главную':
            mk = types.ReplyKeyboardMarkup(resize_keyboard=True)
            btn1 = types.KeyboardButton('Помощь')
            mk.add(btn1)
            bot.send_message(m.chat.id, 'Выбери одну из игр\n'
                                        'Угадай число /gtc\n'
                                        'Угадай слово /gtw\n'
                                        'Угадай игру /gtg\n'
                                        'Крестики-нолики /xo', reply_markup=mk)
            if m.text == 'Помощь':
                bot.send_message(m.chat.id, 'Напишите /help')
    elif m.text == '↩Назад':
        mk = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton('Помощь')
        mk.add(btn1)
        bot.send_message(m.chat.id, 'Выбери одну из игр\n'
                                    'Угадай число /gtc\n'
                                    'Угадай слово /gtw\n'
                                    'Угадай игру /gtg\n'
                                    'Крестики-нолики /xo', reply_markup=mk)
        if m.text == 'Помощь':
            bot.send_message(m.chat.id, 'Напишите /help')
        else:
            bot.send_message(m.chat.id, "Увы я не знаю такой команды")


@bot.message_handler(commands=['help'])
def help(m):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton('🎲Кубик')
    btn2 = types.KeyboardButton('🎰Угадай число')
    markup.add(btn1, btn2)
    bot.send_message(m.chat.id, 'Выбери игру про которую хотите прочитать правила', reply_markup=markup)


@bot.message_handler(commands=['farm'])
def farm(m):
    bot.send_message(m.chat.id, f'Вы получили {farm} коин(-а, -ов)\nВаш баланс {farm + bal}')


bot.infinity_polling()

完整错误:

2025-01-08 19:34:57,609 (__init__.py:1115 MainThread) ERROR - TeleBot: "Infinity polling exception: 'str' object is not callable"
2025-01-08 19:34:57,616 (__init__.py:1117 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\telebot\__init__.py", line 1110, in infinity_polling
    self.polling(non_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
  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)
TypeError: 'str' object is not callable"
python
  • 1 个回答
  • 37 Views
Martin Hope
An9r3z1k
Asked: 2024-11-18 22:57:52 +0000 UTC

机器人无法启动

  • 5

我想制作一个机器人,但是当我尝试启动机器人时出现错误:

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:一切与之前的更改相同,没有问题

python
  • 1 个回答
  • 28 Views
Martin Hope
An9r3z1k
Asked: 2024-11-17 16:34:48 +0000 UTC

如何制作 .exe 使其正常工作[关闭]

  • 5
关闭。这个问题需要澄清或者补充细节。目前不接受对此问题的答复。

想要改进这个问题吗?通过编辑这篇文章添加更多详细信息并澄清问题。

昨天关门了。

改进问题

如何使 .exe 在另一台电脑上运行

python
  • 2 个回答
  • 40 Views
Martin Hope
An9r3z1k
Asked: 2024-11-17 01:11:52 +0000 UTC

我无法做到这一点,因此当我输入“生日快乐”并单击“检查”按钮时,会显示一个单独的脚本

  • 5

我想为我的兄弟制作一个惊喜的游戏,但点击“检查”按钮后我无法运行其他代码,代码如下:

# Импорты
from tkinter import *
from random import choice, sample


# команды
    # Начало     
def start():
    global word, wm, eg
    By.place_forget()
    Bn.place_forget()
    SB['text'] = 'Проверить'
    SB['command'] = check
    SB.place(relx=0.5, y=300, anchor=CENTER)
    word = choice(words)
    wm = sample(word, k=len(word))
    LW['text'] = 'Загаданое слово: ' + ''.join(wm)
    eg = Entry(win, font='Arial 15 bold', width=62)
    eg.place(x=193, y=148.5)


    # Проверка ответа
def check():
    gus = eg.get()
    if gus == word:
        eg.place_forget()
        SB.place_forget()
        LW['text'] = 'Вы угадали!\n Хотите ещё?'
        By.place(x=150, y=260)
        Bn.place(x=590, y=260)
    else:
        LW['text'] = 'Вы не угадали :(, попробуйте ёще раз\nЗагадоное слово: ' + ''.join(wm)

    # закрытие программы
def close():
    if close:
        win.destroy()


    # не нужно
# def cf():
#     start()
#     DR()


    # тут проблема
def DR():
    global ge, wordDr
    wordDr = 'с днем рождения', word
    if wordDr:
        eg.place_forget()
        SB.place_forget()
        win['bg'] = 'grey'
        LW['text'] = 'У тебя сегодня день рождение?'
        ge = Entry(win, font='Arial 15 bold', width=62)
        ge.place(relx=0.5, y=180)


# Слова 
words = [
    'кошка',
    'день',
    'код',
    'дом',
    'дрон',
    'тампон',
    'с днем рождения',
]

# текст
LW = Label(win, text='', font='Arial 25 bold', fg='white', bg='black')
LW.place(relx=0.5, y=71.5, anchor=CENTER)
# кнопка
SB = Button(win, text='Начать', font='Arial 20 bold', fg='black', bg='white', width=40, height=3, command=start)
SB.place(relx=0.5, y=173, anchor=CENTER)
# да\нет
By = Button(win, text='Да', font='Arial 20 bold', fg='black', bg='green', width=20, height=6, command=start )
Bn = Button(win, text='Нет', font='Arial 20 bold', fg='black', bg='red', width=20, height=6, command=close)


mainloop()

我尝试创建单独的标签,但没有任何效果。请帮忙

改变:我想知道,当你在行中写下“生日快乐”时,这不是代码的结尾,而是一个完全不同的场景,其中会有几个问题

python
  • 1 个回答
  • 33 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5