Вы немного не понимаете, что такое локальные переменные.
Давайте объясню.
Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию 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))
power point — убедительный доклад) — программа подготовки презентаций и просмотра презентаций, являющаяся частью Microsoft Office и доступная в редакциях для операционных систем Microsoft Windows и macOS, а также для мобильных платформ Android и IOS.
Робототе́хника — прикладная наука, занимающаяся разработкой автоматизированных технических систем и являющаяся важнейшей технической основой развития производства
Скретч - это новая среда программирования, которая позволяет детям создавать собственные анимированные и интерактивные истории, презентации, модели, игры и другие произведения. Этими произведениями можно обмениваться внутри международной среды, которая постепенно формируется в сети Интернет.
Вы немного не понимаете, что такое локальные переменные.
Давайте объясню.
Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию 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))
Это так, пища для размышления.
power point — убедительный доклад) — программа подготовки презентаций и просмотра презентаций, являющаяся частью Microsoft Office и доступная в редакциях для операционных систем Microsoft Windows и macOS, а также для мобильных платформ Android и IOS.
Робототе́хника — прикладная наука, занимающаяся разработкой автоматизированных технических систем и являющаяся важнейшей технической основой развития производства
Скретч - это новая среда программирования, которая позволяет детям создавать собственные анимированные и интерактивные истории, презентации, модели, игры и другие произведения. Этими произведениями можно обмениваться внутри международной среды, которая постепенно формируется в сети Интернет.