Resolved: Question 1 answer - count
Hi Hristina,
Have a good day.
Regarding question 1 , you asked to count from the lowest to the highest number, so i understood that you needed the count as the answer, so i tried the following code, but it kept giving me a count of 0 or 1, so what could be wrong ?
Hey Mohamed,
Thank you for your question!
Let's discuss the while
-loop. Note that the else
keyword is only used in an if-else
construction. Therefore, the first modification I would suggest is removing the else
keyword and unindenting the code in lines 69 and 70, so that they stay outside of the loop:
while num_1 < 1 or num_1 > 100 or num_2 < 1 or num_2 > 100 or num_1 == num_2:
print('try again')
num_1 = int(input('please enter a number between 1 and 100: '))
num_2 = int(input('please enter a number between 1 and 100: '))
count += 1
my_list.append(list(range(num_1, num_2)))
Next, note that
count += 1
is executed only once—when the conditions for the num_1
and num_2
variables are satisfied and you exit the while
-loop. If you want to get the count of the numbers, I would suggest either finding the length of the list that stores the numbers (my_list
in your case), or computing it as follows:
count = num_2 - num_1 + 1
Which brirngs me to my comment regarding the my_list
variable. Notice that in line 61, you create a list of the numbers between num_1
and num_2
. However, they might be numbers outside the range [1, 100]. I would therefore suggest removing the code in line 70 and moving the code from line 61 to line 70, i.e.
num_1 = int(input('please enter a number between 1 and 100: '))
num_2 = int(input('please enter a number between 1 and 100: '))
while num_1 < 1 or num_1 > 100 or num_2 < 1 or num_2 > 100 or num_1 == num_2:
print('try again')
num_1 = int(input('please enter a number between 1 and 100: '))
num_2 = int(input('please enter a number between 1 and 100: '))
count = num_2 - num_1 + 1
my_list = list(range(num_1, num_2))
print(f'count: {count} \nlist: {my_list}')
Next, note that the range()
function that you use to create my_list
includes num_1
but excludes num_2
. Therefore, in order to include num_2
to the list of numbers, you would have to add +1
like so:
my_list = list(range(num_1, num_2+1))
And finally, my last comment thta I would leave to you to resolve is that your code assumes that num_1
is smaller than num_2
. That, however, doesn't have to be the case. Think about how you can modify your code, so that it creates the list of numbers in both cases:
1. num_1
< num_2
2. num_1
> num_2
Hope this helps! Let me know if you experience other issues.
Kind regards,
365 Hristina
Thank you so much for your help.
I also solved the last issue that you mentioned by if condition code in Bold, so my final code is:
num_1 = int(input('please enter a number between 1 and 100: >'))
num_2 = int(input('please enter a number between 1 and 100: >'))
while num_1 < 1 or num_1>100 or num_2<1 or num_2>100 or num_1==num_2:
print('Wrong number, please try again between 1 and 100:>')
num_1 = int(input('please enter a number between 1 and 100: >'))
num_2 = int(input('please enter a number between 1 and 100: >'))
if num_1>num_2:
num_1,num_2 = num_2,num_1
count = len(range(num_1,num_2+1))
my_list = list(range(num_1,num_2+1))
print(f'count of numbers is {count} in the following list {my_list}')
Hey again Mohamed,
Excellent solution!
Kind regards,
365 Hristina