Really need some help here. Super early in learning Python.
The goal is to take a number and see if the digits are in ascending order. What I have so far is:
a = int(input("Enter a 4-digit number: "))
b = [int(i) for i in str(a)]
if b[0] > b[1]:
print "Not ascending"
elif b[1] > b[2]:
print "Not ascending"
elif b[2] > b[3]:
print "Not ascending"
else:
print "Ascending!"
My question is, how can I make it so that there's no limit on the amount of digits entered? So if someone enters a 7 digit number it does the same process up to the last digit.
First step sort all your input
b = [int(i) for i in str(a)]
Second step, compare the origin input with the sorted-list, all the element of the list can be concat with a string (digit-string), so you can compare them with only one time.
c = sorted(b)
''.join([str(i) for i in b]) > ''.join([str(i) for i in c]):
print "Not ascending"
else:
print "Ascending!"
Or use the std lib, check every element with the next element just like your way:
every_check = [b[i] <= b[i+1] for i in xrange(len(b)-1)]
[True, True, False, False]
and use all()
check if all True
if all(every_check):
print "Ascending!"
else:
print "Not ascending"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With