簡體   English   中英

限制python中的raw_input

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM