用于检查字符串中的变量是否存在的命令
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()
我需要用户输入两个数字来形成一个范围,如果一个或两个数字都没有输入,或者输入了一个字母,就会出现错误消息。 我现在做的是
@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()