Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- numbers = ['''
- 0000
- 00 00
- 00 00
- 00 00
- 0000
- ''',
- '''
- 1111
- 11
- 11
- 11
- 111111
- ''',
- '''
- 2222
- 22 22
- 22
- 22
- 222222
- ''',
- '''
- 3333
- 33 33
- 333
- 33 33
- 3333
- ''',
- '''
- 44 44
- 44 44
- 444444
- 44
- 44
- ''',
- '''
- 555555
- 55
- 55555
- 55
- 55555
- ''',
- '''
- 6666
- 66
- 66666
- 66 66
- 6666
- ''',
- '''
- 777777
- 77
- 77
- 77
- 77
- ''',
- '''
- 8888
- 88 88
- 8888
- 88 88
- 8888
- ''',
- '''
- 9999
- 99 99
- 99999
- 99
- 9999
- '''
- ]
- def get_ascii_art(number:int):
- bill = number
- nums = [] # разбиваем число на цифры
- while number > 0:
- nums.append(number%10) # берем последнюю цифру
- number//=10 # убираем последнюю цифру из числа
- nums.reverse() # так как брали с конца, то разворачиваем, чтобы получилось исходное число
- for i, num in enumerate(nums):
- nums[i] = numbers[num].strip().split("\n") # заменяем каждое число на его арт. Арт убираем через strip от лишних пробелов, через сплит делим по строкам. ЭТО ВАЖНО
- max_length = max([len(element) for element in nums[i]]) # так как строки в арте разных размеров, находим максимальную длину, а далее равняем всё по ней
- for j in range(len(nums[i])): # проходимся по каждой строке
- length = len(nums[i][j]) # узнаем ее длину
- if length < max_length: # если она меньше самой большой у арта
- delta = max_length - length # то узнаем, насколько
- nums[i][j] += " " * delta # и добавляем такое же количество пробелов
- # print([len(el) for el in nums[0]]) # принт для проверки количества длины
- result = [] # теперь нужно склеить 1ю строку одного числа с 1й строкой 2,3 и 4 числа. Потом тоже самое со второй строкой - числа должны стоять все в одну строку
- for strings in zip(*nums): # пройтись сразу по всем цифрам, сколько бы их не было
- result.append(" ".join(strings)) # конкатенация
- print("-"*40)
- print("-"*40)
- print("-"*40)
- for line in result:
- print(line)
- print("-"*40)
- print(f"Общая стоимость заказа: {bill} руб.")
- print("-"*40)
Advertisement
Add Comment
Please, Sign In to add comment