Python Forum

Full Version: Number within range
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
So, this was the question description I was given :

# 6.Write a Python function to check whether a number is in a given range.

Below is my code :

print("Enter number: ")
number = input()

print("Enter start of range: ")
start_of_range = input()

print("Enter end of range: ")
end_of_range = input()

def in_range(number, start_of_range, end_of_range):
    if number >= start_of_range and number <= end_of_range:
        print("Number is within given range")
    else:
        print("Number is not within given range")

in_range(number, start_of_range, end_of_range)
Strange thing is when I type in numbers that are in range, I get the "Number is not within range" message. For example, number = 5, start_of_range = 1 , end_of_range = 10 gives the message "Number is not within range" when in fact the answer should be "Number is within range". Can anyone please help spot the error? Thanks alot ...
you need to convert all your inputs to numbers using int(). Otherwise you are comparing strings, not numbers
(Jan-21-2019, 09:40 AM)buran Wrote: [ -> ]you need to convert all your inputs to numbers using int(). Otherwise you are comparing strings, not numbers

I converted all inputs to numbers but got an invalid syntax message :

print("Enter number: ")
number = input()

print("Enter start of range: ")
start_of_range = input()

print("Enter end of range: ")
end_of_range = input()

def in_range(int(number), int(start_of_range), int(end_of_range)):
    if int(number) >= int(start_of_range) and int(number) <= int(end_of_range):
        print("Number is within given range")
    else:
        print("Number is not within given range")

in_range(int(number), int(start_of_range), int(end_of_range))
Error message :

Error:
CaiGengYangs-MacBook-Pro-2:OwnExercise---Functions caigengyang$ python3 Qn6.py File "Qn6.py", line 13 def in_range(int(number), int(start_of_range), int(end_of_range)): ^ SyntaxError: invalid syntax CaiGengYangs-MacBook-Pro-2:OwnExercise---Functions caigengyang$ python3 Qn6.py File "Qn6.py", line 13 def in_range(int(number), int(start_of_range), int(end_of_range)): ^ SyntaxError: invalid syntax CaiGengYangs-MacBook-Pro-2:OwnExercise---Functions caigengyang$ python3 Qn6.py File "Qn6.py", line 13 def in_range(int(number), int(start_of_range), int(end_of_range)): ^ SyntaxError: invalid syntax

(Jan-21-2019, 10:07 AM)MrGoat Wrote: [ -> ]
(Jan-21-2019, 09:40 AM)buran Wrote: [ -> ]you need to convert all your inputs to numbers using int(). Otherwise you are comparing strings, not numbers

I converted all inputs to numbers but got an invalid syntax message :

print("Enter number: ")
number = input()

print("Enter start of range: ")
start_of_range = input()

print("Enter end of range: ")
end_of_range = input()

def in_range(int(number), int(start_of_range), int(end_of_range)):
    if int(number) >= int(start_of_range) and int(number) <= int(end_of_range):
        print("Number is within given range")
    else:
        print("Number is not within given range")

in_range(int(number), int(start_of_range), int(end_of_range))
Error message :

Error:
CaiGengYangs-MacBook-Pro-2:OwnExercise---Functions caigengyang$ python3 Qn6.py File "Qn6.py", line 13 def in_range(int(number), int(start_of_range), int(end_of_range)): ^ SyntaxError: invalid syntax CaiGengYangs-MacBook-Pro-2:OwnExercise---Functions caigengyang$ python3 Qn6.py File "Qn6.py", line 13 def in_range(int(number), int(start_of_range), int(end_of_range)): ^ SyntaxError: invalid syntax CaiGengYangs-MacBook-Pro-2:OwnExercise---Functions caigengyang$ python3 Qn6.py File "Qn6.py", line 13 def in_range(int(number), int(start_of_range), int(end_of_range)): ^ SyntaxError: invalid syntax




Oh ok I got it ... here's the code. The initial error that I made was that I should not have converted the inputs into integers inside the function declaration ... it gives an error message.

print("Enter number: ")
number = input()

print("Enter start of range: ")
start_of_range = input()

print("Enter end of range: ")
end_of_range = input()

def in_range(number, start_of_range, end_of_range):
    if int(number) >= int(start_of_range) and int(number) <= int(end_of_range):
        print("Number is within given range")
    else:
        print("Number is not within given range")

in_range(int(number), int(start_of_range), int(end_of_range))
A better way to write this:
def get_int(itext):
    num = None
    while not isinstance(num, int):
        try:
            value = input(f'{itext}: ')
            num = int(value)
        except ValueError:
            print('Please -- integers only')
    return num

def main():
    number = get_int("Enter number")
    start_of_range = get_int("Enter start of range")
    end_of_range = get_int("Enter end of range")


if __name__ == '__main__'
    main()
test:
Output:
Enter number: Jimbo Please -- integers only Enter number: 45.2 Please -- integers only Enter number: 15 Enter start of range: 7 Enter end of range: 14
Your code is correct but it needs to be converted to int.
Python takes string as default input value.