2013-03-05 21 views
2

我想知道什麼功能,我應該使用這個功能,高清,這樣用戶只能輸入一個字符串,而不是整數 -一般Python編程2.7數據驗證

def GetTextFromUser(): 

    TextFromUser = raw_input('Please enter the text to use: ') 

    return TextFromUser 
+0

'raw_input'已經返回一個字符串,所以你去了,驗證完成了。除非你的意思是不允許用戶輸入'1234'(這會使函數返回''1234''),在這種情況下,你需要更具體地表達你的意思。 – Dougal 2013-03-05 17:19:31

+1

raw_input給你的所有東西都是一個字符串。 – Keith 2013-03-05 17:19:32

+0

raw_input將只返回字符串。 – 2013-03-05 17:20:22

回答

6

raw_input()總是返回一個字符串。但是,如果字符串你的意思是隻有字母是允許的,那麼你可以使用:str.isalpha()

S.isalpha() -> bool 

Return True if all characters in S are alphabetic 
and there is at least one character in S, False otherwise. 

例子:

In [9]: 'foo'.isalpha() 
Out[9]: True 

In [10]: 'foo23'.isalpha() 
Out[10]: False 
+0

「字符串和非整數」,包括'/'和'^'{}' – Hut8 2013-03-05 17:22:31

+0

對不起,我認爲這是我的意思是加密程序的一部分,當然它使用的信件,當然加密取決於加密方法。但我當然不希望用戶直接輸入數字。但是,謝謝你,它應該工作 – user1655562 2013-03-05 17:26:43

+0

如果你正在加密文本,爲什麼不能包含數字?你說你會加密'foo'而不是'123'? 'foo123'呢? – 2013-03-05 17:33:46

0

按照documentation,總的raw_input返回一個字符串。如果你不希望它返回一個整數,我會嘗試使用int()將它轉換爲一個整數,如果失敗則會捕獲異常。如果不失敗,則立即返回該值。這遵循Pythonic的風格:「請求寬恕而不是允許。」