对于我的程序,我要求用户提供邮政编码。我试图让程序再次询问用户他们的邮政编码,如果他们输入的不仅是数字,而且是5个字符。它的确不是5个字符,而是再次要求提供邮政编码,但不会再次询问用户是否输入了非数字的字符。例如,如果您键入“ 8789”,则无法使用,但如果您键入“ 8jkf0”,则将可以使用。
我已经尝试过将我的或切换到and,但这就是它。我想不出要尝试的其他方法。我是python的新手。我在学校使用它,有时在业余时间使用它。
zipcode = input("What is your ZIP code? ")
ziplen = len(zipcode)
while not (char.isnumber() for char in zipcode) or not ziplen == 5:
zipcode = input("What is your ZIP code? ")
ziplen = len(zipcode)
我希望该程序再次询问用户的邮政编码,如果他们输入的不仅是数字和正好5个字符,还只会检查它是否正好是5个字符。
答案 0 :(得分:4)
isnumeric检查整个字符串,就这样:
while not zipcode.isnumeric() or not len(zipcode) == 5:
...
答案 1 :(得分:1)
您需要调用pattern = r"chapter \d"
y = x.map(lambda x: bool(re.search(pattern,str(x), flags=re.I)))
z = np.cumsum(y)
函数以返回测试all()
中所有字符的结果。您的列表理解会产生一个生成器,这将永远是真实的。
正确的功能是zipcode
,而不是isdigit
。
isnumber