Форматировать зарплату: отделить пробелом тысячи
есть список зарплат, нужно для удобства отформатировать число- отделить тысячи пробелом. есть код:
salary = '30000'
salary2 = salary.replace('0000', '0 000')
print(salary2)
получается то что надо: 30 000 , но проблема в том, что если будет зарплата например 300000, то на выходе я получу 30 0000 как решить проблему форматирования зарплат для всех уровней, и с 3мя нолями вроде 9000 и с 5ю нолями вроде 300000?
Ответы (1 шт):
Автор решения: Павел
→ Ссылка
Если всегда нужно именно количество тысяч, то можно так:
def get_formated_salary(salary):
return f'{salary[:-3]} {salary[-3:]}'
print(get_formated_salary('30000'))
print(get_formated_salary('300000'))
print(get_formated_salary('3000000'))
Вывод:
30 000 300 000 3000 000
Для общего случая, можно просто последовательно разбивать строку с зарплатой на блоки по 3:
def get_formated_salary(salary):
salary_blocks = []
while len(salary) > 3:
salary_blocks.append(salary[-3:])
salary = salary[:-3]
salary_blocks = ' '.join(salary_blocks[::-1])
return f'{salary} {salary_blocks}'
print(get_formated_salary('30000'))
print(get_formated_salary('300000'))
print(get_formated_salary('3000000'))
Вывод:
30 000 300 000 3 000 000