确保用户在输入中包含“@”符号[重复]

Posted

技术标签:

【中文标题】确保用户在输入中包含“@”符号[重复]【英文标题】:Making sure that the user includes an '@' symbol in their input [duplicate] 【发布时间】:2017-07-04 08:48:14 【问题描述】:

我想验证用户在我的程序中输入的数据(电子邮件地址)。如果用户输入一个“@”符号,程序应该接受它。如果没有,程序应该循环并再次询问电子邮件。到目前为止,我已经尝试过这样做,但是程序会为每个输入的字符循环:

emailright = True

while emailright == True:    
    email = input("Please enter your email address")
    character = ("@")
    for character in email:
        if character == '@':
            print("Your email address had been registered")
            emailright = True
        else:
            print("invalid email address, please re-enter")
            emailright = False

while 循环和其中的所有内容也已缩进。 谢谢!

【问题讨论】:

if '@' in email:? 您需要将for character in email: 替换为if character in email,同时emailright 应以False 开头 请注意,仅仅拥有@ 不一定构成有效的电子邮件地址。为什么要重新发明***? emailregex.com 【参考方案1】:

虽然有许多更好的电子邮件验证方法,但这可以更简洁地实现您的逻辑:

email = input("Please enter your email address")
while '@' not in email:    
    email = input("invalid email address, please re-enter")
print("Your email address had been registered")

【讨论】:

【参考方案2】:

这样的?

import re


is_email_valid = None


while is_email_valid is None:
    email = input("Please enter your email address")
    is_email_valid = re.match('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$', email)
    if is_email_valid:
        print("Your email address had been registered")
    else:
        print("invalid email address, please re-enter")

这是我从中提取正则表达式的网站:

http://emailregex.com/

【讨论】:

【参考方案3】:
while True:    
    email = input("Please enter your email address")
    if '@' in email:
        break

或者:

https://pypi.python.org/pypi/validate_email

【讨论】:

不知道为什么当它完全按照 OP 的要求进行时,为什么会有如此多的反对票。

以上是关于确保用户在输入中包含“@”符号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在返回语句中包含多个变量[重复]

如何确保正确配置anaconda环境以导入包[重复]

在 Android 项目中包含 MPChartLib [重复]

在gradle项目中包含jar文件[重复]

如何在一个窗口中包含多个图表[重复]

如何在一个窗口中包含多个图表[重复]