name = input('Enter name here:') pyc = input('enter pyc :') tpy = input('enter tpy:') percent = (pyc / tpy) * 100; print (percent) input('press enter to quit') 

whenever i run this program i get this

TypeError: unsupported operand type(s) for /: 'str' and 'str' 

what can i do to divide pyc by tpy?

5 Answers

By turning them into integers instead:

percent = (int(pyc) / int(tpy)) * 100; 

In python 3, the input() function returns a string. Always. This is a change from Python 2; the raw_input() function was renamed to input().

1

The first thing you should do is learn to read error messages. What does it tell you -- that you can't use two strings with the divide operator.

So, ask yourself why they are strings and how do you make them not-strings. They are strings because all input is done via strings. And the way to make then not-strings is to convert them.

One way to convert a string to an integer is to use the int function. For example:

percent = (int(pyc) / int(tpy)) * 100 

I would have written:

percent = 100 while True: try: pyc = int(input('enter pyc :')) tpy = int(input('enter tpy:')) percent = (pyc / tpy) * percent break except ZeroDivisionError as detail: print 'Handling run-time error:', detail 
2

There is another error with the forwars=d slash.

if we get this : def get_x(r): return path/'train'/r['fname'] is the same as def get_x(r): return path + 'train' + r['fname'] 
name = input ('What is your name?: ') age = input('How old are you?: ') date = input ('What year is it?: ') year = (int(date) - int(age) + 100) print('You\'ll be 100 in the year ', year) #That's how I decided to hardcode it. You could get more specific with actual birthdates or else it'll probably be off by a year unless your bday passed. 
1