限制Python中的raw_input
我该怎么限制用户在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:
# ...
你应该选择哪个方法呢? 这要看你的具体实现。如果你想接受输入但“截断”它,就用第一种方法。如果你想先验证一下(看看输入的长度是否正确),那就用第二种方法。