Вопрос задан 29.09.2023 в 06:59. Предмет Информатика. Спрашивает Досмагулов Диас.

Помогите с задачей, язык Python Напишите две функции: первая принимает одно целое положительное

число N и находит сумму всех цифр числа N; вторая принимает число N и считает количество цифр в числе. В ответе выводится разность суммы чисел и количества. Пример работы программы: Введите число: 500 Сумма цифр: 5 Кол-во цифр в числе: 3 Разность суммы и кол-ва цифр: 2 number = int(input('Введите число: ')) def suma_number(number): ``suma = 0 ``while number > 0: ````digit = number % 10 ````suma = suma + digit ````number = number // 10 ``print('\nСумма цифр:', suma) suma_number(number) def count_number(number): ``countnumber = number ``digitcount = 0 ``while countnumber > 0: ````digitcount += 1 ````countnumber = countnumber // 10 ``print('Кол-во цифр в числе:', digitcount) count_number(number) def differ(suma, digitcount): ``diff = suma - digitcount ``print('Разность суммы и кол-ва цифр:', diff) differ(suma, digitcount)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Баскакова Элина.

Вы немного не понимаете, что такое локальные переменные.

Давайте объясню.

Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию differ() и применяете переменные, которые находятся в count_number() и suma_number(). Локальные переменные скрыты от других функций.

Чтобы избежать ошибки, как вариант, можно создать глобальную переменную:

1. Пишем перед функцией глоб. переменную

suma = 0

def suma_number(number):

   pass

2. Присваиваем значение глобальной переменной внутри функции с помощью ключевое слово global:

suma = 0

def suma_number(number):

   global suma

   pass

Полная программа:

number = int(input('Введите число: '))

suma = 0

def suma_number(number):

   global suma

   while number > 0:

       digit = number % 10

       suma = suma + digit

       number = number // 10

   print('\nСумма цифр:', suma)

suma_number(number)

digitcount = 0

def count_number(number):

   global digitcount

   countnumber = number

   while countnumber > 0:

       digitcount += 1

       countnumber = countnumber // 10

   print('Кол-во цифр в числе:', digitcount)

count_number(number)

def differ(suma, digitcount):

   diff = suma - digitcount

   print('Разность суммы и кол-ва цифр:', diff)

differ(suma, digitcount)

Можно обойтись и без глоб. переменных:

Когда Вы вызываете функцию differ(), не используйте локальные переменные из других функций, просто вызовите эти функции:

differ(suma_number(number), count_number(number))

Кстати, если задуматься, код можно сделать проще:

def suma_number(a):

   return sum(map(int, list(a)))

def count_number(a):

   return len(a)

def differ(a, b):

   return a - b

n = input('Введите число: ')

print('Сумма цифр:', suma_number(n))

print('Кол-во цифр в числе:', count_number(n))

print('Разность суммы и кол-ва цифр:', differ(suma_number(n), count_number(n)))

Хотя можно и совсем "извращение" сделать без функций в 2 строчки..

n = input('Введите число: ')

print('Сумма цифр:', sum(map(int, list(n))), '\nКол-во цифр в числе:', len(n), '\nРазность суммы и кол-ва цифр:', sum(map(int, list(n))) - len(n))

Это так, пища для размышления.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

У вас есть небольшие ошибки в коде. Вот исправленный вариант:

python
def suma_number(number): suma = 0 while number > 0: digit = number % 10 suma = suma + digit number = number // 10 return suma def count_number(number): countnumber = number digitcount = 0 while countnumber > 0: digitcount += 1 countnumber = countnumber // 10 return digitcount number = int(input('Введите число: ')) sum_of_digits = suma_number(number) number_of_digits = count_number(number) print('Сумма цифр:', sum_of_digits) print('Кол-во цифр в числе:', number_of_digits) print('Разность суммы и кол-ва цифр:', sum_of_digits - number_of_digits)

Пример работы программы:

Введите число: 500 Сумма цифр: 5 Кол-во цифр в числе: 3 Разность суммы и кол-ва цифр: 2
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос