如何从输入的用户名中筛选出数字



我正试图让用户输入建筑物的名称(他们选择的(,但名称不能包括0到9之间的任何数字,这是唯一的限制。如果它们包含一个数字,程序只是简单地"告诉"它们该条目无效,并且它们必须重试。我的问题是,我认为我没有正确使用循环,所以它仍然接受无效答案

这是我写的:

buildName = (input('Enter the building name: '))
for char in buildName:
if char.isdigit():
break
print('Invalid Entry')
buildName = input('Re-Enter the building name: ')

building.setBuildName(buildName)

我觉得这应该奏效。但是,我被卡住了。

为了更具体地说明输出有效性;C-Building";应在";123C大厦";不应该

代码的主要问题是中断;正因为如此,你才脱离了循环,所以剩下的代码就不会执行了。为了解决这个问题,你可以制作一个只接受非数字的新字符串。所以你的";如果";将把非数字附加到新列表中。通过这样做,你不需要要求用户输入新条目,因为你从中过滤了它

最新更新