为什么我会收到此错误? Python(newb)

时间:2015-09-08 13:17:40

标签: python python-3.x

我对编程很新。这是我得到的任务:

  

作业规格

     

对于以下每个里氏测量仪测量,您的程序   将执行适当的计算并显示等效值   以焦耳为单位的能量和以吨为单位的爆炸TNT:

 1.0

 5.0

 9.1 (Indonesia earthquake, 2004)

 9.2 (Alaska earthquake, 1964)

 9.5 (Chile earthquake, 1960; largest ever measured)

 asdf (an invalid value)
     

您的计划将会:

     

提示用户输入里氏测量值;

     

接受表示该测量值的浮点值(这个   必须经过验证,以便只输入有效数字);

     

执行适当的计算;

     

以焦耳和吨为单位显示等量的能量   爆炸了该用户输入值的TNT。

     

作业说明

     

里氏震级是量化地震震级的一种方法   使用基数为10的对数标度。幅度定义为   a测量的波幅比的对数   地震仪的幅度任意小。一场地震   里氏震级5.0的震动幅度为10倍   大于一个测量4.0,相当于31.6倍   更大的能量释放。焦耳的能量释放出来了   特别里希特尺度测量由下式给出:

     

能量= 10 ^(1.5 *富集)+4.8

     

其中能量以焦耳为单位测量,里氏浓度为里氏震级   测量(通常以1-10的比例作为浮点   数)。一吨爆炸性TNT产量为4.184x109焦耳。因此,你   可以将焦耳释放的能量与TNT爆炸的数量联系起来。

这是我的代码:

    run="yes"
    vr=1
    while run == "yes":

     while vr==1:
         RichterScale = (input("Please enter the value for the Richter magnitude:"))
         if RichterScale.isdigit():
              energy = 10**(1.5*RichterScale+4.8)
              print(("Energy released:"),energy,"Joules")
              vr=2
        else:
            vr=1

    run=input("Would you like to run this program again? yes/no: ")
print("Goodbye")

这是我得到的错误:

Please enter the value for the Richter magnitude:t
Please enter the value for the Richter magnitude:t
Please enter the value for the Richter magnitude:3

Traceback (most recent call last):
  File "C:/Python34/python bridgin unit.py", line 8, in <module>
    energy = 10**(1.5*RichterScale+4.8)
TypeError: can't multiply sequence by non-int of type 'float'

由于

1 个答案:

答案 0 :(得分:0)

你问RichterScale它是否是一个数字,如果它是,你继续把它当作一个数字,当你还没有转换它时。尝试将其转换为浮动。

energy = 10**(1.5*(float(RichterScale))+4.8)