Skip to content

Instantly share code, notes, and snippets.

@Miron-Anosov
Last active February 13, 2023 17:47
Show Gist options
  • Save Miron-Anosov/a98656de7688abd24600abbd1a3c1306 to your computer and use it in GitHub Desktop.
Save Miron-Anosov/a98656de7688abd24600abbd1a3c1306 to your computer and use it in GitHub Desktop.
print('Задача 4. Недоделка 2')
# Вы всё так же работаете в конторе по разработке игр и смотрите различные программы прошлого горе-программиста. В одной из игр для детей, связанной с мультяшной работой с числами, вам нужно было написать код согласно следующим условиям: программа получает на вход два числа; в первом числе должно быть не менее трёх цифр, во втором — не менее четырёх, иначе программа выдаёт ошибку. Если всё нормально, то в каждом числе первая и последняя цифры меняются местами, а затем выводится их сумма.
# И тут вы натыкаетесь на программу, которая была написана предыдущим программистом и которая как раз решает такую задачу. Однако старший программист попросил вас немного переписать этот код, чтобы он не выглядел так ужасно. Да и вам самим становится, мягко говоря, не по себе от него.
# Постарайтесь разделить логику кода на три отдельные логические части (функции):
# count_numbers — получает число и возвращает количество цифр в числе;
# change_number — получает число, меняет в нём местами первую и последнюю цифры и возвращает изменённое число;
# main — функция ничего не получает на вход, внутри она запрашивает нужные данные от пользователя, выполняет дополнительные проверки и вызывает функции 1 и 2 для выполнения задачи (проверки и изменения двух чисел).
# Разбейте приведённую ниже программу на функции. Повторений кода должно быть как можно меньше. Также сделайте, чтобы в основной части программы был только ввод чисел, затем изменённые числа и вывод их суммы.
#first_n = int(input("Введите первое число: "))
#first_num_count = 0
#temp = first_n
#while temp > 0:
# first_num_count += 1
# temp = temp // 10
#
#if first_num_count < 3:
# print("В первом числе меньше трёх цифр.")
#else:
# last_digit = first_n % 10
# first_digit = first_n // 10 ** (first_num_count - 1)
# between_digits = first_n % 10 ** (first_num_count - 1) // 10
# first_n = last_digit * 10 ** (first_num_count - 1) + between_digits * 10 + first_digit
# print('Изменённое первое число:', first_n)
# second_n = int(input("\nВведите второе число: "))
# second_num_count = 0
# temp = second_n
#
# while temp > 0:
# second_num_count += 1
# temp = temp // 10
# if second_num_count < 4:
# print("Во втором числе меньше четырёх цифр.")
# else:
# last_digit = second_n % 10
# first_digit = second_n // 10 ** (second_num_count - 1)
# between_digits = second_n % 10 ** (second_num_count - 1) // 10
# second_n = last_digit * 10 ** (second_num_count - 1) + between_digits * 10 + first_digit
# print('Изменённое второе число:', second_n)
# print('\nСумма чисел:', first_n + second_n)
def count_numbers(number, x):
count = 0
temp = number
while temp > 0:
count += 1
temp = temp // 10
ansver = Check(number, count, x)
return ansver
def change_number(number, count, x):
last_digit = number % 10
first_digit = number // 10 ** (count - 1)
between_digits = number % 10 ** (count - 1) // 10
number = last_digit * 10 ** (count - 1) + between_digits * 10 + first_digit
print('Изменённое', x,'-е число:', number)
return number
def Check(number, count, x):
if count >= 3 and x == 1:
ansver = change_number(number, count, x)
return ansver
elif count < 3 and x == 1:
print("В", x,"числе меньше трёх цифр.\n")
main()
elif count >= 4 and x == 2:
ansver = change_number(number, count, x)
return ansver
elif count < 4 and x == 2:
print("В", x,"-oм числе меньше четырех цифр.\n")
main()
def main():
summ = 0
for x in range(1, 2 + 1):
print("\nВведите", x,"-е число: ", end = '')
number = (int(input()))
re_num = count_numbers(number, x)
summ += re_num
print('\nСумма чисел:', summ)
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment