当前位置: 首页 > 面试题库 >

测试Python字符串变量是否保留数字(int,float)或非数字str?

琴宾鸿
2023-03-14
问题内容

如果Python字符串变量中放置了整数,浮点数或非数字字符串,是否可以轻松测试该值的“类型”?

下面的代码是真实的(当然是正确的):

>>> strVar = "145"
>>> print type(strVar)
<type 'str'>
>>>

但是是否有Python函数或其他方法可以使我从上述的strVar设置查询中返回“ int”

也许像下面的废话代码和结果…

>>> print typeofvalue(strVar)
<type 'int'>

或更多废话:

>>> print type(unquote(strVar))
<type 'int'>

问题答案:
import ast
def type_of_value(var):
    try:
       return type(ast.literal_eval(var))
    except Exception:
       return str

或者,如果您只想检查int,请更改第三行以try使用以下命令在内部阻塞:

int(var)
return int


 类似资料:
  • 问题内容: 检查字符串是否可以在Python中表示为数字的最佳方法是什么? 我目前拥有的功能是: 它不仅丑陋而且缓慢,看起来笨拙。但是我还没有找到更好的方法,因为调用函数甚至更糟。 问题答案: 不仅丑陋而且缓慢 我都对此表示怀疑。 正则表达式或其他字符串解析方法将更难看,更慢。 我不确定任何事情都可以比上述速度更快。它调用该函数并返回。不会带来太多的开销,因为最常见的异常是在没有大量搜索堆栈帧的情

  • 问题内容: 我想将字符串转换为最严格的数据类型:int或float。 我有两个字符串: 如何在Python中确定value1应该为Float,value2应该为Integer? 问题答案:

  • 我想对一个浮点数进行四舍五入,得到点后的两位数。但我收到了一个错误: float()参数必须是字符串或数字,而不是“NoneType” 在评级模型的评级字段中四舍五入是一个坏主意,因为平均_评级不会四舍五入

  • 试图删除所有不是0-9和句号的字母和字符。我正在使用,但它也删除了十进制,我如何也保留十进制呢?

  • 问题内容: 我正在SQL Server 2008中工作。我正在尝试测试字符串(varchar)是否只有数字字符(0-9)。我知道IS_NUMERIC函数会产生虚假结果。(我的数据可能带有$符号,不应通过测试。)因此,我避免使用该功能。 我已经有一个测试,看一个字符串是否有任何非数字字符,即 我认为唯一的数字测试将是类似的东西,但是我在空白处。有任何想法吗? 问题答案: 使用 演示版

  • 问题内容: 在Python中,如何将像这样的数字字符串解析为对应的浮点值?或者将字符串解析为整数31? 我只想知道如何将解析为,以及(分别)将解析为。 问题答案: