Comparing numbers give the wrong result in Python

Solution 1:

You're testing a string value myAge against another string value '24', as opposed to integer values.

if myAge > ('24'):
     print('You are old, ' + myName)

Should be

if int(myAge) > 24:
    print('You are old, {}'.format(myName))

In Python, you can greater-than / less-than against strings, but it doesn't work how you might think. So if you want to test the value of the integer representation of the string, use int(the_string)

>>> "2" > "1"
True
>>> "02" > "1"
False
>>> int("02") > int("1")
True

You may have also noticed that I changed print('You are old, ' + myName) to print('You are old, {}'.format(myName)) -- You should become accustomed to this style of string formatting, as opposed to doing string concatenation with + -- You can read more about it in the docs. But it really doesn't have anything to do with your core problem.

Solution 2:

The string '100' is indeed less than the string '24', because '1' is "alphabetically" smaller than '2'. You need to compare numbers.

my_age = int(input())
if my_age > 24:

Solution 3:

print ('What is your name?')
myName = input ()
print ('Hello, ' + myName)
print ('How old are you?, ' + myName)
myAge = input ()
if int(myAge) > 24:
     print('You are old, ' + myName)
else:
     print('You will be old before you know it.')

Just a small thing about your code. You should convert the input from myAge to an integer (int) (number) and then compare that number to the number 24.;

Also, you should usually not add strings together as it is consider non-pythonic and it slow. Try something like print ('Hello, %s' % myName) instead of print ('Hello, ' + myName).

Python Strings Tutorial