我在这里使用Python 2.7.4,我知道如何通过
将字符串定义为Unicodea = u"abcd"
我尝试使用 raw_input()
从键盘读取字符串,我想将我读到的字符串传递给 isX() isdecimal()
, isalnum()
等功能。但是当我这样做时,我会收到这样的错误消息。
│AttributeError:'str'对象没有属性'isdecimal'
无论如何我可以使用,以便我可以读取字符串,并将这些字符串传递给这些函数,如isdecimal?
我可以向您解释一个示例案例。
a = raw_input()
我将'two'输入到变量 a 。然后,
print(a.isdecimal())
我想打印 False
,而不是打印给定的错误消息。
答案 0 :(得分:0)
鉴于您撰写问题的方式,您真正想知道该怎么做: 如何将raw_input()的输出转换为unicode对象,以便您可以使用.isdecimal(),因为它只是一个Unicode对象函数。
要回答这个问题,您可以执行以下操作,在获取输入时自动执行转换:
text= raw_input().decode(sys.stdin.encoding or locale.getpreferredencoding(True))
整个代码看起来像这样:
import sys, locale
text= raw_input().decode(sys.stdin.encoding or locale.getpreferredencoding(True))
print(text.isdecimal())
顺便说一句,你有.isdigit()用于非Unicode(也就是普通字符串)。 为了避免使用字符串到Unicode转换的所有麻烦,如果你没有强烈的需要继续使用2.7,我建议你转到python 3. *
答案 1 :(得分:-1)
是的,例如我在下面尝试过: -
a = 0
try:
a = int(raw_input())
print isX(a)
except:
print "Wrong Input"
在这种情况下,如果你传递一个字符串,那么它也能正常工作。