"Unorderable types: int() < str()"
I'm trying to make a retirement calculator right now on Python. There's nothing wrong with the syntax but when I run the following program:
def main(): print("Let me Retire Financial Calculator") deposit = input("Please input annual deposit in dollars: $") rate = input ("Please input annual rate in percentage: %") time = input("How many years until retirement?") x = 0 value = 0 while (x < time): x = x + 1 value = (value * rate) + deposit print("The value of your account after" +str(time) + "years will be $" + str(value))
It tells me that:
Traceback (most recent call last): File "/Users/myname/Documents/Let Me Retire.py", line 8, in <module> while (x < time): TypeError: unorderable types: int() < str()
Any ideas how I could solve this?Автор: user2074050 Источник Размещён: 12.11.2019 09:53
The issue here is that
input() returns a string in Python 3.x, so when you do your comparison, you are comparing a string and an integer, which isn't well defined (what if the string is a word, how does one compare a string and a number?) - in this case Python doesn't guess, it throws an error.
To fix this, simply call
int() to convert your string to an integer:
Note that the more pythonic way of looping over a series of numbers (as opposed to a
while loop and counting) is to use
range(). For example:
Автор: Gareth Latty Размещён: 15.02.2013 01:09
def main(): print("Let me Retire Financial Calculator") deposit = float(input("Please input annual deposit in dollars: $")) rate = int(input ("Please input annual rate in percentage: %")) / 100 time = int(input("How many years until retirement?")) value = 0 for x in range(1, time+1): value = (value * rate) + deposit print("The value of your account after" + str(x) + "years will be $" + str(value))
Just a side note, in Python 2.0 you could compare anything to anything (int to string). As this wasn't explicit, it was changed in 3.0, which is a good thing as you are not running into the trouble of comparing senseless values with each other or when you forget to convert a type.Автор: user1767754 Размещён: 26.06.2017 09:29