检查浮点值是否包含减号(hyphen-minus)-Python

时间:2018-11-21 16:11:57

标签: python

我只想检查变量是否包含负值,但它不断抛出此错误:

// Where ocrCam should be reference to MLKitTextRecognition
ocrCam.camera.release(); 

我看过其他有类似错误的人,但没有一个给我解决当前问题的想法。

对于python和程序设计来说仍然是新手,对此没有很好的了解。 希望您能以正确的方式指导我。 谢谢大家的帮助!

到目前为止,我已经做到了:

Traceback (most recent call last):
  File "C:\...\...\...\file.py", line 88, in <module>
     main()
  File "C:\...\...\...\file.py", line 33, in main
     if '-' in done:
TypeError: argument of type 'float' is not iterable
[Finished in 0.2s with exit code 1]

2 个答案:

答案 0 :(得分:3)

float对象中不存在字符串字符。只需执行数字比较:

if flo < 0:
    print('yes')

关键字in用于迭代诸如str实例之类的可迭代对象,因此您的逻辑将适用于字符串:

if '-' in val:
    print('yes')

当然,在第二种情况下,与第一个字符或字符串开头进行比较比较明智,例如val[0] == '-'val.startswith('-')

答案 1 :(得分:1)

只需从strfloat删除强制类型转换,就可以控制是否存在减号:

def main():
   val = '-96000'

   if '-' in val:
       print('yes')

if __name__ == '__main__':
   main()

或者更好的是,控制str实际上以减号开头:

   if val.startswith('-'):
       print('yes')

或者更好,仍然强制转换为浮动,然后控制数据的值:

def main():
   val = '-96000'
   flo = float(val)
   if flo < 0:
       print('yes')

if __name__ == '__main__':
   main()