It's probably a simple mistake but I can't see it. I think my for loop in the function makes sense but it keeps returning true....
Write the in_order() function, which has a list of integers as a parameter, and returns True if the integers are sorted (in order from low to high) or False otherwise. The program outputs "In order" if the list is sorted, or "Not in order" if the list is not sorted.
Ex: If the list passed to the in_order() function is [5, 6, 7, 8, 3], then the function returns False and the program outputs:
Not in order
Ex: If the list passed to the in_order() function is [5, 6, 7, 8, 10], then the function returns True and the program outputs:
In order
Note: Use a for loop. DO NOT use sorted() or sort().
def in_order(nums):
i = 0
while i < len(nums):
for x in nums:
if nums[i] <= nums[i+1]:
return True
else:
return False
i+=1
if __name__ == '__main__':
# Test out-of-order example
nums1 = [5, 6, 7, 8, 3]
if in_order(nums1):
print('In order')
else:
print('Not in order')
# Test in-order example
nums2 = [5, 6, 7, 8, 10]
if in_order(nums2):
print('In order')
else:
print('Not in order')
1: Unit test
0 / 2
Test in_order(nums) returns False, where nums is [5, 6, 7, 8, 3]
Your output
Test failed: in_order() should have returned False because the numbers are not sorted
2: Unit test
2 / 2
Test in_order(nums) returns True, where nums is [5, 6, 7, 8, 10]
Your output
Test passed: in_order() correctly returned True
3: Unit test
3 / 3
Test in_order(nums) returns True, where nums is [5, 5, 6, 6, 6, 7, 8, 10, 10, 10, 10]
Your output
Test passed: in_order() correctly returned True
4: Compare output
0 / 3
Output differs. See highlights below.
Your output
In order
In order
Expected output
Not in order
In order