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

检查字符串是否可以在Python中转换为float

景志
2023-03-14
问题内容

我有一些Python代码,这些代码遍历字符串列表,并在可能的情况下将它们转换为整数或浮点数。对整数执行此操作非常简单

if element.isdigit():
  newelement = int(element)

浮点数比较困难。现在,我正在使用partition('.')分割字符串并检查以确保一侧或两侧都是数字。

partition = element.partition('.')
if (partition[0].isdigit() and partition[1] == '.' and partition[2].isdigit()) 
    or (partition[0] == '' and partition[1] == '.' and partition[2].isdigit()) 
    or (partition[0].isdigit() and partition[1] == '.' and partition[2] == ''):
  newelement = float(element)

这行得通,但是显然,如果使用if语句有点让人头疼。我考虑的另一种解决方案是将转换仅包装在try /
catch块中,然后查看转换是否成功

还有其他想法吗?关于分区和尝试/捕获方法的相对优点的看法?


问题答案:

我会用..

try:
    float(element)
except ValueError:
    print "Not a float"

..这很简单,并且可以正常工作

另一个选择是正则表达式:

import re
if re.match(r'^-?\d+(?:\.\d+)?$', element) is None:
    print "Not float"


 类似资料:
  • 问题内容: 我正在使用Python v2,并且试图找出是否可以判断字符串中是否包含单词。 我发现了一些有关识别单词是否在字符串中的信息-使用.find,但是有一种方法可以执行IF语句。我想要以下内容: 谢谢你的帮助。 问题答案: 出什么问题了:

  • 问题内容: 我希望换行在打印从其他位置检索的字符串时显式显示。因此,如果字符串为“ abc \ ndef”,则我不希望这种情况发生: 但是相反: 有没有一种方法可以修改打印,或修改参数,或者完全修改另一个函数来完成此任务? 问题答案: 您可以使用转义字符停止python的另一种方法是使用原始字符串,如下所示: 要么 使用的唯一问题是它将字符串放在单引号中,如果您想使用引号可以很方便

  • 以下设置: 两个变量都表示语义相等的ID。由于应用程序是针对移动设备的,因此以最有效的方式进行这些变量的比较非常重要。 将这些变量与此代码片段进行比较是否有效, 还是用这个?

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

  • 问题内容: 我有一个isNotEmpty函数,如果字符串不为空,则返回true;如果字符串为空,则返回false。我发现如果我通过它传递一个空字符串,它将无法正常工作。 使用isNotEmpty验证字符串: 如果该字符串为空,则其他字符串将不会执行,我不明白为什么,请有人对此有所帮助。 问题答案: 实际上是简单的问题。更改: 至 可以说,您可能还想将其更改为: 因为如果您传递的是数字0以及其他一些

  • 问题内容: Python是否有类似空字符串变量的内容,你可以在其中执行以下操作: 无论如何,检查空字符串值的最优雅方法是什么?我”“每次都很难检查空字符串,因此很难进行编码。 问题答案: 空字符串是“虚假的”,这意味着它们在布尔上下文中被认为是错误的,因此你可以执行以下操作: 如果你知道变量是字符串,则这是首选方式。如果你的变量也可以是其他类型,则应使用。有关在布尔上下文中为假的其他值,请参见“