我只想检查变量是否包含负值,但它不断抛出此错误:
// 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]
答案 0 :(得分:3)
float
对象中不存在字符串字符。只需执行数字比较:
if flo < 0:
print('yes')
关键字in
用于迭代诸如str
实例之类的可迭代对象,因此您的逻辑将适用于字符串:
if '-' in val:
print('yes')
当然,在第二种情况下,与第一个字符或字符串开头进行比较比较明智,例如val[0] == '-'
或val.startswith('-')
。
答案 1 :(得分:1)
只需从str
到float
删除强制类型转换,就可以控制是否存在减号:
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()