I am trying to write a piece of code that will go through a list of numbers (splitting on vertical bars) that if the user enters a non number, will throw an exception and replace said object with 0. It is intended to display the list in descending order (largest to smallest) with vertical bars in between. This is my code currently, but I cannot get it to work.
numbers = input("Please enter several integer numbers separated by
vertical bars. ").split('|')
for item in numbers:
try:
numbers = [int(item) for item in numbers]
except ValueError:
item = item.replace(item,'0')
numbers = sorted(numbers, reverse = True)
print(' | '.join(str(num) for num in numbers))
numbers = input("Please enter several integer numbers separated by vertical bars. ")
numbers = numbers.split('|')
temp = []
for item in numbers:
try:
temp.append(int(item))
except ValueError:
temp.append(0)
numbers = temp
Note that here we don't change numbers
while we're iterating over it. Another way to accomplish the same task would be something like
def eval_number(s):
try:
return int(s)
except ValueError:
return 0
numbers = input("Please enter several integer numbers separated by vertical bars. ")
numbers = numbers.split('|')
numbers = list(map(eval_number, numbers))
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