Discuss / Python / 报错了,哪位同学可以帮我看看嘛?

报错了,哪位同学可以帮我看看嘛?

Topic source

6_6CiCi

#1 Created at ... [Delete] [Delete and Lock User]
  • height=float(input('请输入您的身高(以米为单位):'))

  • weight=float(input('请输入您的体重(以公斤为单位):'))

  • BMI=weight/height**2

  • if BMI<=18.5:

  •     print('您的BMI为:%.2f','您太轻了,请多吃点!'%BMI)

  • elif BMI<=25:

  •     print('您的BMI为:%.2f','您体型正常,请继续保持!'%BMI)

  • elif BMI<=28:

  •     print('您的BMI为:%.2f','您已过重,请注意饮食!'%BMI)

  • elif BMI<=32:

  •     print('您的BMI为:%.2f','您已属于肥胖,请多运动!'%BMI)

  • else:

  •     print('您的BMI为:%.2f','您已严重肥胖,不能再吃啦!!!'%BMI)

  • 在VSC里面创建以上语句,运行这个py文件,身高1.75,体重80,5,提示:

  • Traceback (most recent call last):

  •     File "BMI.py",line 9,in (module)

  •        print('您的BMI为:%.2f','您已过重,请注意饮食!'%BMN)

  • TytpError:not all arguments converted during string formatting

不懂,求指导改正,谢谢!

confused235

#2 Created at ... [Delete] [Delete and Lock User]

你把每一个条件后的两个字符串合并为一个就可以了

Swaggy_JJ

#3 Created at ... [Delete] [Delete and Lock User]

请问为什么一定要合并成一个才可以呢?

因为'%.2f'和最后的%BMI并没有连在一起,所以报错,如果不合并字符串的话, 也可以将%BMI放在小提示字符串前面。道理是一样的

6_6CiCi

#5 Created at ... [Delete] [Delete and Lock User]

已修正,运行正常,谢谢指点!

碰到同样的问题,已修正,运行正常,谢谢。


  • 1

Reply