繁体   English   中英

我的程序无法将.isdigit识别为True

[英]My program doesn't recognize .isdigit as True

在我的程序中,我要检查笔划符号是否是公共数字(0-9)

.isnumeral的工作方式很奇怪,因为它把字母(az)视为True,所以我潜入其中,然后发现.isnumeral实际上并不是专门搜索我想要的数字。 通过手册,我发现.isdigit但:

dna = 'a3'
start = 0
end = 1
if dna[end].isdigit is True:
    print('Yes')

它不起作用,并且“是”未按预期显示。

if dna[end].isdigit is True:

isdigit()是函数,而不是属性。

您忘记了最后的括号,因此,您指的是函数对象本身 ,而不是调用函数的结果

您实际上必须调用isdigit()方法:

dna = 'a3'
start = 0
end = 1
if dna[end].isdigit():
    print('Yes')

这给出了您期望的答案,对。

如果执行dna[end].isdigit它只是给出一个对象<built-in method isdigit of str object at address> ,该<built-in method isdigit of str object at address>将不求值。

dna[end].isdigit在这种情况下是指str.isdigit函数。 如果您执行print(type(dna[end].isdigit))您将明白我的意思。

要调用该函数,请在if dna[end].isdigit():添加如下的括号if dna[end].isdigit():

两件事情:

  • 无需与true进行比较,只需使用isdigit()的结果

  • isdigit()是一个函数,其本身是真实的,但不等同于True

查看Python文档以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM