You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python邮箱格式校验脚本输入无效邮箱未重新录入问题求助

问题根因
  • check 函数未返回校验状态:当前无论邮箱是否符合格式,函数都返回空值,外层逻辑无法判断输入是否有效,自然无法触发重新录入逻辑
  • 循环条件使用错误:你把Python主程序入口的判断__name__ == '__main__'当成了循环条件,只要脚本是直接运行的,这个条件永远成立,就算输对了邮箱也永远走不到输入密码的步骤
  • 缺少循环跳出逻辑:没有根据校验结果控制是否继续循环输入邮箱
修复后可运行代码
import re

# 优化正则:移除字符集中多余的|符号,原写法会把|当成允许的合法字符
regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b'
def check(email):
    if re.fullmatch(regex, email):
        return True
    else:
        print("correct format is like amireza@gmail.com")
        return False

if __name__ == '__main__':
    # 循环输入邮箱,直到格式合法才跳出
    while True:
        username = input("请输入邮箱:")
        if check(username):
            break
    password = input("请输入密码:")
    # 后续可执行存入数据库等操作
修改说明
  • 调整check函数返回值:格式合法返回True,不合法返回False,外层可直接根据返回值判断输入有效性
  • 修正程序结构:将__name__ == '__main__'恢复为标准的主程序入口判断,避免无意义的无限循环
  • 新增循环控制逻辑:只有校验通过才会跳出邮箱输入循环,否则自动重新要求输入

内容的提问来源于stack exchange,提问作者amirreza es

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:57:01