为了账号安全,请及时绑定邮箱和手机立即绑定

检查浮点值是否包含减号(连字符减号)-Python

检查浮点值是否包含减号(连字符减号)-Python

当年话下 2021-08-24 17:05:51
我只想检查变量是否包含负值,但它不断向我抛出此错误: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()
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

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

if flo < 0:
    print('yes')

该关键字in用于迭代可迭代对象(例如str实例),因此您的逻辑将使用字符串:

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

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


查看完整回答
反对 回复 2021-08-24
?
皈依舞

TA贡献1851条经验 获得超3个赞

只需从strto 中删除演员表,就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()


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 247 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信