def amount_of_numbers(number1,number2): if number1.find('.')>0 or number1.find(',')>0: #определяет наличие разделителя в первом числе и разделяет его на две части (целую и дробную) number1_1 = number1 [0: max ([number1.find('.'),number1.find(',')])] number1_2 = number1 [max ([number1.find('.'),number1.find(',')])+1 : len(number1)] else: number1_1 = number1 number1_2 = ('0') if number2.find('.')>0 or number2.find(',')>0: #определяет наличие разделителя во втором числе и разделяет его на две части (целую и дробную) number2_1 = number2 [0: max ([number2.find('.'),number2.find(',')])] number2_2 = number2 [max ([number2.find('.'),number2.find(',')])+1 : len(number2)] else: number2_1 = number2 number2_2 = ('0') if len(number1_1)-len(number2_1) >= 0: #приводит целые части чисел к единообразию (одинаковому кол-ву цифр в строке) number2_1 ='0'*(len(number1_1)-len(number2_1)) + number2_1 else: number1_1 = '0'*(len(number2_1)-len(number1_1)) + number1_1 if len(number1_2)-len(number2_2) >= 0: #приводит дробные части чисел к единообразию number2_2 = number2_2 + '0'*(len(number1_2)-len(number2_2)) else: number1_2 = number1_2 + '0'*(len(number2_2)-len(number1_2)) carryover = 0 amount = '' #строка в которую будут последовательно добавляться суммы разрядов if number1.find('.')>0 or number1.find(',')>0 or number2.find('.')>0 or number2.find(',')>0: #суммирует друбную часть если она есть for i in range(1,len(number1_2)+1): #последовательно складывает цифры дробных частей и определяет наличие переноса 1 в след. разряд n = int(number1_2[len(number1_2)-i])+int(number2_2[len(number2_2)-i])+carryover if n>9: carryover = 1 else: carryover = 0 amount = str(n)[-1] + str(amount) amount = '.' + amount #добавляет в строку разделитель for i in range(1,len(number1_1)+1): #последовательно складывает цифры целых частей и определяет наличие переноса 1 в след. разряд n = int(number1_1[len(number1_1)-i])+int(number2_1[len(number2_1)-i])+carryover if n>9: carryover = 1 else: carryover = 0 amount = str(n)[-1] + str(amount) if carryover == 1: #добавляет в начало строки 1, если при суммировании цифр последнего разряда потребовался перенос amount = str(carryover) + str(amount) return (amount) print(amount_of_numbers('123,0004','55')) print(amount_of_numbers('12345','12345')) print(amount_of_numbers('99999.0','123,5'))
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question