繁体   English   中英

如何在Python中附加电报Bot

[英]How to append in python for telegram bot

我正在用类似计算器的东西做电报机器人,我试图附加所有输入的值,以便可以将值保存在变量中。

        numpad = InlineKeyboardMarkup(inline_keyboard=[
            [InlineKeyboardButton(text='1', callback_data= '1'),
            InlineKeyboardButton(text='2', callback_data= '2'),
            InlineKeyboardButton(text='3', callback_data= '3')],
            [InlineKeyboardButton(text='4', callback_data= '4'),
            InlineKeyboardButton(text='5', callback_data= '5'),
            InlineKeyboardButton(text='6', callback_data= '6')],
            [InlineKeyboardButton(text='7', callback_data= '7'),
            InlineKeyboardButton(text='8', callback_data= '8'),
            InlineKeyboardButton(text='9', callback_data='9')],
            [InlineKeyboardButton(text='0', callback_data='0'),
             InlineKeyboardButton(text='.', callback_data='.')],
            [InlineKeyboardButton(text='ENTER', callback_data='done')],
                               ])

        bot.sendMessage(from_id, 'How much u wanna change bro', reply_markup=numpad)

    if query_data in ['1','2','3','4','5','6','7','8','9','0']:
        print('hi')
        amt= []
        for query_data in amt:
            amt.append(query_data)
            z = list[amt]
    if query_data == 'done':
        bot.sendMessage(from_id, "is this the amount you want to change{}?".format(z))
        print (z)

这里:

for query_data in amt:
    amt.append(query_data)
    z = list[amt]

在第1行中,您的意思是“ amt”,是“ numpad”吗? 因为“均值”是一个空列表,并且您想在“ for”之后填写。 所以也许正确的代码是:

for query_data in numpad:
    amt.append(query_data)
    z = list[amt]

我相信问题出在代码的这一部分:

    amt= []
    for query_data in amt:
        amt.append(query_data)
        z = list[amt]

我不太确定python语法1 ,但这似乎为for循环的范围创建了一个新变量query_data
这意味着您需要对amt每个元素进行循环。 但是amt为空,因此您根本不需要执行循环。
我不确定您的循环打算做什么,但是不只是使用在所有输入的时间内都存在的变量(最简单的例子:全局变量)更适合您的需求吗? 如果您有一个全局amt ,则可以将该代码块替换为

amt.append(query_data)
z = list[amt]

但是请注意,如果同时有多个用户,则全局变量将引起麻烦。


[1]请注意,python只是替换了您的amt变量。 这是一个例子:

>>> alpha = []
>>> beta = [1,2,3]
>>> for alpha in beta:
...     print(1)
...
1
1
1
>>> alpha
3

因此,即使我的alpha是一个列表,它也变成了值3的整数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM