[英]Limiting raw_input in python
如何限制用戶可以鍵入raw_input
的字符數? 我的問題可能有一些簡單的解決方案,但我無法弄清楚。
一個簡單的解決方案是添加一條重要的消息 ,然后使用切片來獲取前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:
# ...
你應該選擇哪個? 這取決於您的實現,如果您想接受輸入但是“截斷”它,請使用第一種方法。 如果要先驗證(如果輸入的長度正確),請使用第二種方法。
嘗試這個:
while True:
answer = raw_input("> ")
if len(answer) < 40:
break
else:
print("Your input should not be longer than 40 characters")
我喜歡制作通用驗證器
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.