确保用户在输入中包含“@”符号[重复]
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 的要求进行时,为什么会有如此多的反对票。以上是关于确保用户在输入中包含“@”符号[重复]的主要内容,如果未能解决你的问题,请参考以下文章