首页 > 解决方案 > Python程序获取一个人身高的数值和单位?

问题描述

标签: python

解决方案


您的代码只需进行一些更改即可根据指定输入的需要工作。smci 已经提出了一项更正建议:

正则表达式'^\d*.*\d*|'太松散,因为每个字符都是可选的(*允许 0 次或更多次重复)。所以它会匹配''。大概你需要至少一位数字。所以它应该^\d+.?\d*也是你的尾随|再次允许它匹配空字符串,你不需要那个。

我合并了这个和一些更多的变化 - 见评论:

    numbers = re.findall('\d+\.?\d*', value)    # don't overwrite value, you need it below
    if len(numbers) > 0:
        number = numbers[0]
    if len(numbers) > 1:
        number += '.' + numbers[1]              # add the decimals
    # replace the Japanese units with metric ones
    value = value.replace('\xe7\xb1\xb3', 'm').replace('\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81', 'cm')
    units = re.findall('m|cm', value)
    unit = '?'                                  # set default unit in case none present
    if len(units) > 0:
        unit = units[0]

推荐阅读