1

我刚开始学习Python。由于这是我的第一语言,如果这太容易了,请不要对我苛刻。我不知道如何解决这个问题。这是我编程的:

a=input("Enter pyramid base size ")
H=input ("Enter pyramid height size ")
P=a*a+2*a*h
print (P)

但这出来了:

Enter pyramid base size 2
Enter pyramid height size 2
Traceback (most recent call last):
  File "D:\Program Files (x86)\Python\pyramid.py", line 3, in <module>
    P=a*a+2*a*h
TypeError: can't multiply sequence by non-int of type 'str'
4

2 回答 2

3

接收到的输入类型是字符串,但对于您的等式,需要数字。您可以将输入转换为整数或浮点数,然后进行数学运算

a = int(a)
h = float(h)

现在您可能需要检查输入是否可以转换为数字,您可以执行以下操作:

try:
  h = int(h)
except ValueError:
  print 'the input couldnt be converted into an integer'

编辑

所以,这就是你的代码应该是什么样子

a = input("Enter pyramid base size ")
h = input ("Enter pyramid height size ")

try:
  a = int(a)
  h = int(a)
  p = a*a + 2*a*h

  print (p)
except: ValueError:
  print 'Input cannot be converted to an integer'
于 2013-05-08T20:50:35.460 回答
1

您的输入ab是字符串。虽然您可以将一个字符串乘以一个数字来重复该字符串(例如,'a' * 5 == 'aaaaa'),但您不能将一个字符串乘以一个字符串。

如果您想P成为一个数字,请将您的输入调用包装在int(input(...)).

于 2013-05-08T20:51:16.920 回答