我如何将其放入已定义的变量中?并且还可以防止浮点数?

问题描述 投票:0回答:1

我收到了第一份大学作业,这只是一个游戏,用户输入文字来创建一个随机故事。 虽然这不是强制性的,但我想添加某种验证,以防止人们输入长度小于 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 循环,但我没有得到与当前相同的结果

python user-defined-functions
1个回答
0
投票

如果您想专门使数字无效,那么您可以这样做:

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)

另请注意,使用这样的功能也意味着您不必重复输入/提示

© www.soinside.com 2019 - 2024. All rights reserved.