Number within range - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Number within range (/thread-15540.html) |
Number within range - MrGoat - Jan-21-2019 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 ... RE: Number within range - buran - Jan-21-2019 you need to convert all your inputs to numbers using int() . Otherwise you are comparing strings, not numbers
RE: Number within range - MrGoat - Jan-21-2019 (Jan-21-2019, 09:40 AM)buran Wrote: you need to convert all your inputs to numbers using 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 :
(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 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)) RE: Number within range - Larz60+ - Jan-21-2019 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:
RE: Number within range - aakashjha001 - Jan-27-2019 Your code is correct but it needs to be converted to int. Python takes string as default input value. |