Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-识别字符串中的数字_Python_String_Integer - Fatal编程技术网

Python-识别字符串中的数字

Python-识别字符串中的数字,python,string,integer,Python,String,Integer,我已经按照上面的说明使用方法.isdigit()检查字符串是否是数字,但对我来说失败了 我只是想: print("final weight:", weight) if weight.isdigit() == True: print("yes") if weight.isdigit() == False: print("weight is not a digit") 它打印: final weight: 1,873 weight is not a digit 我很困惑为什么这

我已经按照上面的说明使用方法
.isdigit()
检查字符串是否是数字,但对我来说失败了

我只是想:

print("final weight:", weight)
if weight.isdigit() == True:
    print("yes")
if weight.isdigit() == False:
    print("weight is not a digit")
它打印:

final weight:  1,873
weight is not a digit
我很困惑为什么这个失败,因为
1873
实际上是一个数字

更新:

使用正则表达式是有效的。我只是:

regnumber = re.compile(r"(\d),(\d) | (\d)")    #looks for numbers with commas and numbers without commas
if regnumber.search(weight):
    print("weight = an int")

这不是Python中的合法数字:中间有逗号。当然,你我都知道,但大多数计算机语言不允许在这样的数字中使用逗号

如果需要识别这样的数字,请尝试搜索正则表达式以识别数字,例如和

第二个参考来自拉尔夫·htp对主要问题的评论


样式更新:

根据布尔常量检查布尔表达式是多余的。只需使用适当的值:

if weight.isdigit():
    print("yes")
else:
    print("weight is not a digit")

这不是Python中的合法数字:中间有逗号。当然,你我都知道,但大多数计算机语言不允许在这样的数字中使用逗号

如果需要识别这样的数字,请尝试搜索正则表达式以识别数字,例如和

第二个参考来自拉尔夫·htp对主要问题的评论


样式更新:

根据布尔常量检查布尔表达式是多余的。只需使用适当的值:

if weight.isdigit():
    print("yes")
else:
    print("weight is not a digit")

哇,好吧,我现在觉得自己很笨。很抱歉用这样一个新手问题把StackOverflow搞糊涂了。非常感谢你的回应并指导我找到解决方案恭喜你:你是人类。我希望其他人也会有这个问题。。。我可能忽略了这一点,因为这是现有问题的重复。因此,按照您提供的链接,它是否像
regnumber=re.compile(r“(\d),(\d)”,r“\1.\2”)那样简单,如果regnumber.search(weight):print(“yes”)
?我想是的。我没有在Python中使用正则表达式;我有本地包,可以进行我需要的转换。试试看?好的,是的,所以我需要更仔细地阅读这个链接。问这个问题的那个人想用逗号替换#,用句号替换#;所以我只是用了一个可以识别带有逗号的#的正则表达式,并添加了一个也可以识别普通数字的正则表达式,它起了作用。。我会更新我的问题以提供答案哇,好吧,我现在觉得自己很笨。很抱歉用这样一个新手问题把StackOverflow搞糊涂了。非常感谢你的回应并指导我找到解决方案恭喜你:你是人类。我希望其他人也会有这个问题。。。我可能忽略了这一点,因为这是现有问题的重复。因此,按照您提供的链接,它是否像
regnumber=re.compile(r“(\d),(\d)”,r“\1.\2”)那样简单,如果regnumber.search(weight):print(“yes”)
?我想是的。我没有在Python中使用正则表达式;我有本地软件包,可以进行我需要的转换。试试看?好的,是的,所以我需要更仔细地阅读这个链接。问这个问题的那个人想用逗号替换#,用句号替换#;所以我只是用了一个可以识别带有逗号的#的正则表达式,并添加了一个也可以识别普通数字的正则表达式,它起了作用。。我将更新我的问题以提供答案您可以对此使用正则表达式,请参阅@ralfhtp:我看不到此问题处理逗号。我花了几分钟时间查看可能的重复项。我找不到处理解析逗号增强型输入整数的现有问题。这真的是第一次有人问这个问题并让这个问题继续下去吗???你可以用正则表达式来表示这个问题(正则表达式),请看@ralfhtp:我没有看到这个问题处理逗号。我花了几分钟的时间查看可能的重复项。我找不到处理解析逗号增强型输入整数的现有问题。这真的是第一次有人提出这个问题,让这个问题继续下去吗???