首页 > 解决方案 > 如果条件为假,我如何识别这个?

问题描述

我需要确定字符串是否至少有 2 个字符,否则,他们需要再次输入字符串。代码不起作用,我做错了什么?

例如,我输入“jason@yahoo.c”:

email_address = input('Enter your email address: ')

dns_label = email_address.split('.')
local = dns_label[0]
dns = dns_label[1]

if not len(local)>=2 and len(dns)>=2:
    email_address = input('''Your email address is incorrect.\n Please type your email address again: ''')
else:
    print(email_address,'is valid')

在点之后它只有 1 个字符,所以它会再次询问用户输入。我做错了什么?

标签: pythonpython-3.x

解决方案


not运算符的优先级高于and,因此您必须将表达式放入括号中:

if not (len(local) >= 2 and len(dns) >= 2):

或者更好的是,完全删除not以使其更具可读性:

if len(local) < 2 or len(dns) < 2:

编辑:话虽如此,一个if子句不足以进行输入验证,因为它只会检查一次条目。如果用户第二次也输入了错误的电子邮件地址怎么办?有关详细说明,请参阅此问题


推荐阅读