2013-05-08 3 views
1

Я только начал изучать Python. Поскольку это мой первый язык, не судите меня, если это слишком легко. Я не могу понять, как это решить. Это то, что я уже программировал:Просто вход в 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' 
+0

Python чувствителен к регистру, поэтому вам нужно H вместо h: P = a * a + 2 * a * H –

+0

Что вы пытаетесь получить для вывода? – thegrinner

+0

Номер, площадь пирамиды – Puki

ответ

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' 
+0

Извините, если вас беспокоит, но поскольку я новичок и начал изучать Python сегодня, это продвинуто для меня, и я до сих пор не могу понять это – Puki

+0

@Puki обновленный ответ – Kartik

+0

Спасибо за помощь, он работает:) – Puki

1

Ваши вводы a и b - это строки. Хотя вы можете умножить строку на число, чтобы повторить строку (например, 'a' * 5 == 'aaaaa'), вы не можете умножить строку на строку.

Если вы хотите, чтобы номер P был числом, оберните входящие звонки в int(input(...)).