【问题标题】:I'm writing a program for a class but I keep coming up with the same error我正在为一个班级编写一个程序,但我一直遇到同样的错误
【发布时间】:2017-02-15 16:42:49
【问题描述】:

我正在尝试为我的班级编写一个程序,该程序必须计算长轴:a 和短轴:b 的椭圆的周长。

这是我在程序结束时不断得到的。

文件“/Users/johndoe/Desktop/class/ellipse.py”,第 12 行,在 ram1 = float(math.pi*[3*(a+b)-math.sqrt((3*a+b)*(a+3*b))])

TypeError: 不能将序列乘以“float”类型的非整数

【问题讨论】:

  • 首先删除那些[]。 Python 不是你的高中笔记本。数学表达式中只允许使用圆括号(无论您有多少个内括号)。

标签: python


【解决方案1】:

问题在于方括号,它根据其中的操作创建一个列表。因此,您正在尝试做

math.pi*[number]

这不起作用。您可能想用正则括号替换它们,在这种情况下,表达式会返回一个数字:

a=2;b=3
float(math.pi*(3*(a+b)-math.sqrt((3*a+b)*(a+3*b))))

返回

15.865437575563961

【讨论】:

  • 您已经复制了原始代码中给出的相同错误。
  • 谢谢,这解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 2020-10-03
  • 2021-10-17
  • 2020-03-04
相关资源
最近更新 更多