В твоето решение ,като смениш първите два реда , чети стринг и променяш ,вместо trunk използвай isdigit() го докарах да мине още няколко теста - 60/100.
input_numbers = input()
user_list = [int(a)for a in input_numbers if a.isdigit()]
Колега просто в началото модифицираме инпута стринг,като премахваме точки и тирета
После сумираме стрингa,като кастваме на инт число по число за всяка итерация на цикъла ,пазим в променвлива s,която после после отреждаме на обратно на инпута в случая N.
N = input()
N = N.replace('-','').replace('.','')
while int(N) > 9:
s = 0
for i in str(N):
s += int(i)
N = s
if int(N) < 1:
print(0)
else:
print(N)