Python Discord.py |如何仅检查作者消息?

Python Discord.py |如何仅检查作者消息?,python,discord.py,discord.py-rewrite,Python,Discord.py,Discord.py Rewrite,我正在创建一个机器人程序,用于验证成员是否在我们学校。出于某种原因,在输入学生号码后,机器人会要求再次输入,而不是发送电子邮件 @client.event async def on_member_join(member): await member.send("You have joined the unofficial (school) discord server! To access the rest of the server you must "

我正在创建一个机器人程序,用于验证成员是否在我们学校。出于某种原因,在输入学生号码后,机器人会要求再次输入,而不是发送电子邮件

@client.event
async def on_member_join(member):
await member.send("You have joined the unofficial (school) discord server! To access the rest of the server you must "
                  "confirm you are from (our school).")
sent_email = False
confirmation_key = generate_key()
while not sent_email:
    await member.send('What is your student number? ')
    response = await client.wait_for('message')
    student_number = response.content
    if student_number.isalpha() or student_number.isalnum():
        await member.send("Please Enter Your Student Number!")
    elif student_number.isnumeric():
        send_mail(student_number, confirmation_key)
        sent_email = True
        await member.send(f'Sending Confirmation Email...')

任何答案都将不胜感激

student\u number.isalnum()
将始终返回
True
如果
student\u number
仅包含数字,那么您将永远无法到达
elif
案例

重新组织代码可能更有意义:

if student_number.isnumeric():
        send_mail(student_number, confirmation_key)
        sent_email = True
        await member.send(f'Sending Confirmation Email...')
else:
        await member.send("Please Enter Your Student Number!")
据我所知,您只对两种情况感兴趣:

  • 学号格式正确(只有数字)
  • 学号格式不正确

  • 通过这种方式,您可以处理这两种情况,并使用
    isalnum()

    student\u number摆脱复杂的逻辑。如果
    student\u number
    仅包含数字,isalnum()
    将始终返回
    True
    ,因此您将永远无法到达
    elif
    案例

    重新组织代码可能更有意义:

    if student_number.isnumeric():
            send_mail(student_number, confirmation_key)
            sent_email = True
            await member.send(f'Sending Confirmation Email...')
    else:
            await member.send("Please Enter Your Student Number!")
    
    据我所知,您只对两种情况感兴趣:

  • 学号格式正确(只有数字)
  • 学号格式不正确

  • 通过这种方式,您可以处理这两种情况,并使用
    isalnum()

    摆脱棘手的逻辑,这很有效!非常感谢你。这无疑简化了它。我无缘无故地把它弄得很棘手。再次感谢你,你太棒了!这成功了!非常感谢你。这无疑简化了它。我无缘无故地把它弄得很棘手。再次感谢你,你太棒了!