2016-12-13 5 views
-1
print "Welcome to my converter!" 
#inches to centimeters 
def in_inches(n): 
    return(n * 2.54) 


#pounds to kilograms 
def in_pounds(n): 
    return(n * 0.453592) 

while True: 
    print "Which conversion?" 
    print "1 is for in to cm" 
    print "2 is for lbs to kg" 

    choice = raw_input("?") 

    if choice == "1": 
     n = raw_input("How many inches?") 
     res = in_inches(n) 
     print "In %s in we have %s cm." % (n, res) 
    elif choice == "2": 
     n = raw_input("How many pounds?") 
     res = in_pounds(n) 
     print str(n) + " is " + str(res) + " Kilograms" 
    else: 
     print "Invalid choice" 

У меня есть этот код, но он не работает, когда я представляю его на консоль. Консоль говорит:Мне нужна помощь в этой простой конвертерной программе

Traceback (most recent call last): 
File "converter.py", line 20, in <module> 
res = in_inches(n) 
File "converter.py", line 4, in in_inches 
return(n * 2.54) 
TypeError: can't multiply sequence by non-int of type 'float' 

Что это значит и как я могу это исправить? Спасибо заранее. `

+0

Это означает, что вы не можете умножить строку на 2.54. Вы можете использовать 'float (n) * 2.54' в' in_inches' – MSeifert

ответ

0

n имеет тип строки, вы должны преобразовать его в целое, как это:

n = int(raw_input("How many inches?")) 

И,

n = int(raw_input("How many pounds?")) 

raw_input() возвращает строку, поэтому вам нужно использовать int() для преобразования n в int.