【问题标题】:How I can simplify this?我怎样才能简化这个?
【发布时间】:2022-01-11 18:16:00
【问题描述】:

我想简化这些“如果”,有哪些变体?谢谢。

    user_id = message.from_user.id
    user = user_data[user_id]
    user.profil = message.text
    if not user.profil == '97':
        if not user.profil == '82':
            if not user.profil == '72':
                if not user.profil == '64':
                    if not user.profil == '45':
                        if not user.profil == '25':   
                            markup = types.ReplyKeyboardMarkup(one_time_keyboard=True)
                            markup.add('97', '82', '72', '64', '45', '25')
                            msg = bot.send_message(message.chat.id, 'אנא בחר פרופיל.', reply_markup=markup)
                            bot.register_next_step_handler(msg, process_profil_step)
                            return

【问题讨论】:

  • if user.profil not in ...
  • 你能不能把它写成代码?不太明白
  • 至少,你可以写if user.profil != '97' or user.profil != '82' or ...:
  • (没有人写if not ... == ...而不是if ... != ...。)

标签: python performance if-statement


【解决方案1】:

使用not in 你可以做到:

unwanteds = {'97', '82', '72', '64', '45', '25'}
if user.profil not in unwanteds:
    markup = ...

所以这会检查 user.profil 是否不在不需要的集合中。 {} 进行设置,因此查找速度有点快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2019-11-10
    相关资源
    最近更新 更多