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()
摆脱棘手的逻辑,这很有效!非常感谢你。这无疑简化了它。我无缘无故地把它弄得很棘手。再次感谢你,你太棒了!这成功了!非常感谢你。这无疑简化了它。我无缘无故地把它弄得很棘手。再次感谢你,你太棒了!