2013-03-05 74 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的风格:“请求宽恕而不是允许。”