限制Python中的raw_input

2 投票
3 回答
6680 浏览
提问于 2025-04-18 01:37

我该怎么限制用户在raw_input中输入的字符数量呢?我觉得这个问题应该有简单的解决办法,但我就是想不出来。

3 个回答

1

我想做一个通用的验证器

def get_input(prompt,test,error="Invalid Input"):
    resp = None
    while True:
         reps = raw_input(prompt)
         if test(resp):
            break
         print(error)
    return resp

x= get_input("Enter a digit(0-9):",lambda x:x in list("1234567890"))
x = get_input("Enter a name(less than 40)",lambda x:len(x)<40,"Less than 40 please!")
x = get_input("Enter a positive integer",str.isdigit)
2

试试这个:

while True:
    answer = raw_input("> ")
    if len(answer) < 40:
        break
    else:
        print("Your input should not be longer than 40 characters")
5

一个简单的解决办法是添加一个重要信息,然后用切片的方法获取前40个字符:

some_var = raw_input("Input (no longer than 40 characters): ")[:40]

另一个办法是检查输入的长度是否有效:

some_var = raw_input("Input (no longer than 40 characters): ")

if len(some_var) < 40:
    # ...

你应该选择哪个方法呢? 这要看你的具体实现。如果你想接受输入但“截断”它,就用第一种方法。如果你想先验证一下(看看输入的长度是否正确),那就用第二种方法。

撰写回答