用于检查字符串中的变量是否存在的命令

Command to check if a variable inside of a string exists

我需要用户输入两个数字来形成一个范围,如果一个或两个数字都没有输入,或者输入了一个字母,就会出现错误消息。 我现在做的是

@bot.message_handler(commands=['set'])
def handle_message(message):
    if (message.text == '/set'):
    bot.send_message(message.chat.id, 'put in a range')
    elif  message.text.split()[1].isdigit() :
        bot.send_message(message.chat.id, "something")
    elif message.text.split()[1].isdigit() == False:
        bot.send_message(message.chat.id, 'Only letters!')

但问题是,如果用户没有在第二个变量中输入任何内容,我会收到语法错误。我尝试使用

except IndexError:
    bot.send_message(message.chat.id, 'Only letters!') 

但是 returns 一个语法错误。 我正在寻找的是一种检查 message.text.split()[2] 是否存在(有任何值)然后检查它是否是数字的方法。

您 运行 遇到的第一件事是一个合法的 SyntaxError -- 没有 try 就不能使用 except。请参阅下面的用法。

您要 运行 进入的第二件事是 IndexError——如果您在少于两个参数的情况下查找第二个参数怎么办?

三思而后行:

if len(message.text.split()) > 1:
    # do check

另一个是抓TraceBack:

my_messages = [1]
try: 
    my_messages[2]
except IndexError:
    print("length was too short to continue checking!")

在您获取字符串输入的地方,您还应该确保去除多余的空格,因为它可能会误导您:

message = '1234 '
message.isdigit()
# False!

删除将强制其成为字符串的空格:

message = message.strip()
message.isdigit()