猿问

检查浮点值是否包含减号(连字符减号)-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]

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


对 python 和编程还很陌生,对此没有很好的掌握。希望您能以正确的方式指导我。感谢您的帮助,伙计们!


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


def main():

   val = '-96000'


   flo = float(val)


   if '-' in flo:

       print('yes')


if __name__ == '__main__':

   main()


当年话下
浏览 248回答 2
2回答

红颜莎娜

float对象中不存在字符串字符。只需执行数字比较:if&nbsp;flo&nbsp;<&nbsp;0: &nbsp;&nbsp;&nbsp;&nbsp;print('yes')该关键字in用于迭代可迭代对象(例如str实例),因此您的逻辑将使用字符串:if&nbsp;'-'&nbsp;in&nbsp;val: &nbsp;&nbsp;&nbsp;&nbsp;print('yes')当然,在第二种情况下,更明智的做法是与第一个字符或字符串的开头进行比较,例如val[0] == '-'or&nbsp;val.startswith('-')。

皈依舞

只需从strto 中删除演员表,就float可以控制减号的存在:def main():&nbsp; &nbsp;val = '-96000'&nbsp; &nbsp;if '-' in val:&nbsp; &nbsp; &nbsp; &nbsp;print('yes')if __name__ == '__main__':&nbsp; &nbsp;main()或者更好的是,控制str实际上以减号开头:&nbsp; &nbsp;if val.startswith('-'):&nbsp; &nbsp; &nbsp; &nbsp;print('yes')或者更好,仍然转换为浮动,然后控制数据的值:def main():&nbsp; &nbsp;val = '-96000'&nbsp; &nbsp;flo = float(val)&nbsp; &nbsp;if flo < 0:&nbsp; &nbsp; &nbsp; &nbsp;print('yes')if __name__ == '__main__':&nbsp; &nbsp;main()
随时随地看视频慕课网APP

相关分类

Python
我要回答