我收到了第一份大学作业,这只是一个游戏,用户输入文字来创建一个随机故事。 虽然这不是强制性的,但我想添加某种验证,以防止人们输入长度小于 3 个字符的数字和字符串。这段代码确实可以达到其目的,但我有很多重复的、臃肿的代码我想清理。该代码不会阻止浮点数或负数,我假设它与我不以某种方式使用 .isalpha 有关。
adjective1 = input(f"{name}, give me any adjective.\n")
while adjective1.isdigit() or len(adjective1) <= 2:
print("That's not a valid input!")
adjective1 = input(f"{name}, give me an adjective.\n")
我尝试定义一个变量并将其命名为 verify。我在其中使用了 while 循环,但我没有得到与当前相同的结果
如果您想专门使数字无效,那么您可以这样做:
def getvalue(prompt: str) -> str:
while True:
s = input(prompt)
if len(s) > 2 and not any(c.isdigit() for c in s):
return s
value = getvalue("Input at least 2 characters that do not contain any digits: ")
print(value)
另请注意,使用这样的功能也意味着您不必重复输入/提示