Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545

Не удается использовать sum()

22.01.2021, 02:09. Показов 2677. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно, чтобы возвращалось сумма цифр веденного числа, если введено целое число, то возвратить сумму его чисел цифр.
И сумму не возвращает.
Python
1
2
3
4
5
6
7
8
9
10
def num_sum(a):
    a = input('Введите число: ')
    if int(a.isdecimal()):
        print('ХОРОШО')
        sum(a)
    else:
        print('ОШИБКА! Вы ввели либо не целое число, либо вовсе не число!')
 
 
print(num_sum(3))
текст ошибки:
Python
1
2
3
4
5
6
7
8
Введите число: 1000
ХОРОШО
Traceback (most recent call last):
  File "C:\Users\balas\PycharmProjects\pythonProject15\main.py", line 39, in <module>
    print(num_sum(3))
  File "C:\Users\balas\PycharmProjects\pythonProject15\main.py", line 34, in num_sum
    sum(a)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Добавлено через 53 минуты
Получилось только вот так
Python
1
2
3
4
5
6
7
8
9
10
def num_sum(a):
    a = input('Введите число: ')
    if int(a.isdecimal()):
        print('ХОРОШО')
        print(sum(map(int, list(input('Введите ещё раз ')))))
    else:
        print('ОШИБКА! Вы ввели либо не целое число, либо вовсе не число!')
 
 
print(num_sum(3))
А уже с веденным числом не выходит. Я хотел бы так.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2021, 02:09
Ответы с готовыми решениями:

Что нужно использовать вместо функции sum, чтобы умножать четные числа?
from random import randint n = int(input('Input first size: \n')) m = int(input('Input second size: \n')) d = for e in range(n)] ...

Как добавить в sql столбец для разницы двух sum из разных таблиц: sum(A)-sum(B)
Прошу помощи в решении следующей задачи: Сервер Interbase 2009 (обязательно, посколько есть рабочая база). Таблицы: ...

Вычислить рекурсивно сумму чисел от 1 до n, по формуле sum(n) = sum(n, 2) + sum(n-1, 2)
Вычислить рекурсивно сумму чисел от 1 до n, по формуле sum(n) = sum(n, 2) + sum(n-1, 2), где n – целое положительное число, sum(n, a) = n +...

19
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.01.2021, 04:31
Лучший ответ Сообщение было отмечено Anonymous4722 как решение

Решение

Anonymous4722,
Python
1
2
3
4
5
6
7
8
9
10
def num_sum():
    a = input('Введите число: ')
    if int(a.isdecimal()):
        print('ХОРОШО')
        return sum(map(int, str(a)))
    else:
        return 'ОШИБКА! Вы ввели либо не целое число, либо вовсе не число!'
 
 
print(num_sum())
1
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 04:41  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
print(num_sum())
Выдает вот такую ошибку
Python
1
TypeError: num_sum() missing 1 required positional argument: 'a'
Если я ввожу просто а, а не какое-то значение.

Добавлено через 3 минуты
Gdez, Вот так
Python
1
print(num_sum(1234))
работает.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.01.2021, 04:51
Anonymous4722,
Python
1
2
3
4
5
6
7
8
9
10
def num_sum(a):
    #a = input('Введите число: ')
    if int(a.isdecimal()):
        print('ХОРОШО')
        return sum(map(int, str(a)))
    else:
        return 'ОШИБКА! Вы ввели либо не целое число, либо вовсе не число!'
 
 
print(num_sum(1234))
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 05:12  [ТС]
Gdez, А так не подойдет. Надо же чтобы просила ввести число.
Наверное я так это и оставлю:
Python
1
2
3
4
5
6
7
8
9
10
def num_sum(a):
    a = input('Введите число: ')
    if int(a.isdecimal()):
        print('ХОРОШО')
        return print('Сумма чисел = ',sum(map(int, str(a))))
    else:
        print('ОШИБКА! Вы ввели либо не целое число, либо вовсе не число!')
 
 
print(num_sum(1234))
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.01.2021, 08:57
Поясните мне, плиз, зачем преобразовывать к инту?
Цитата Сообщение от Gdez Посмотреть сообщение
if int(a.isdecimal()):
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
22.01.2021, 08:59
iSmokeJC, очень сильно заколдовано! а то что передают 1234 и не используют, тебя не смутило?
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.01.2021, 09:02
Цитата Сообщение от Welemir1 Посмотреть сообщение
тебя не смутило?
Я еще не дошел до этого в анализе кода.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 10:16  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Поясните мне, плиз, зачем преобразовывать к инту?
Да я это делал, когда у меня ошибка выходила, чтобы эту ошибку исправить, щас конечно не надо этого делать. Я просто не обратил внимание, потому что и так работает.

Добавлено через 3 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
а то что передают 1234 и не используют
Если я напишу вот так
Python
1
print(num_sum(1234))
или так
Python
1
print(num_sum(a))
то работать не будет.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.01.2021, 10:40
Цитата Сообщение от Anonymous4722
то работать не будет
Лайфхак - если писать код не наобум, то работать будет
Python
1
2
3
4
5
6
7
8
9
def num_sum(a):
    if a.isdecimal():
        print('ХОРОШО')
        print('Сумма чисел = ',sum(map(int, str(a))))
    else:
        print('ОШИБКА! Вы ввели либо не целое число, либо вовсе не число!')
 
 
num_sum(int(input()))
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
22.01.2021, 10:45
Anonymous4722, тыковое программирование, мое любимое. То есть ты просто куски местами переставляешь и приписываешь что в голову придет, чтобы заработало? не понимая что делаешь?

Python
1
2
3
4
5
6
7
8
9
>>> def num_sum(value):
...     if value.isdecimal():
...         return sum(int(e) for e in value)
...     raise ValueError('Вы ввели не целое число')
... 
>>> value=input()
1234
>>> num_sum(value)
10
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 10:49  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Лайфхак - если писать код не наобум, то работать будет
Не работает.
Миниатюры
Не удается использовать sum()  
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 10:55  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
тыковое программирование, мое любимое
Да, больше не было вариантов.
Цитата Сообщение от Welemir1 Посмотреть сообщение
То есть ты просто куски местами переставляешь и приписываешь что в голову придет, чтобы заработало? не понимая что делаешь?
Я ошибки читал, по ним ориентировался.

Добавлено через 4 минуты
Можно например вот так сделать:
Python
1
print(num_sum(a=0))
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
22.01.2021, 10:57
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Можно например вот так сделать:
зачем? ты хоть самому себе объясни зачем ты что-то суешь в функцию, если это там не используется? книги читать не советую ибо видимо бесполезно
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.01.2021, 10:59
num_sum(input()), да
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 11:03  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
зачем? ты хоть самому себе объясни зачем ты что-то суешь в функцию, если это там не используется?
Потому что выходит ошибка, которая говорит, что аргумент не используется и указывает, что этот аргумент a, а чтобы можно было его использовать надо передать ему значение. Это компилятор мне говорит.
Либо предложите свой вариант.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
22.01.2021, 11:04
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Либо предложите свой вариант.
ааа, ты из тех, кто ничего не читает? я выше разве уже не привел код? даже повторю
Цитата Сообщение от Welemir1 Посмотреть сообщение
>>> def num_sum(value):
...     if value.isdecimal():
...         return sum(int(e) for e in value)
...     raise ValueError('Вы ввели не целое число')
...
>>> value=input()
1234
>>> num_sum(value)
10
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
22.01.2021, 11:11  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
num_sum(input()), да
Python
1
2
3
4
5
6
7
8
9
def num_sum(a):   
    if a.isdecimal():
        print('ХОРОШО!')
        return print('Сумма чисел = ', sum(map(int, str(a))))
    else:
        print('ОШИБКА! Не должно быть никаких знаков и символов, а также пробела. Только целое положительное число!')
 
 
num_sum(input('Введите число: '))
Наверное так будет лучше, как вы все имели в виду. Welemir1,

Добавлено через 2 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
ааа, ты из тех, кто ничего не читает?
Нет, я читаю
Я сделал, вроде так нормально и лучше работает.
Только мне Raise не очень знаком... но я изучу.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.01.2021, 12:05
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
return print
Никогда так не пиши.
print ничего не возвращает (None), поэтому это не имеет никакого смысла.
К тому же вместо принтования лучше вернуть из функции вычисленный результат, а затем уже его вывести.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
22.01.2021, 14:56
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Получилось только вот так
- просто класс!!!
Python
1
2
3
4
5
6
7
8
9
10
11
12
def sumDig(n):
    if n<10:
        return n
    else:
        return n%10+sumDig(n//10)
 
v=input("v=")
try:
    vv=int(v)
    print("Сумма цифр=",sumDig(abs(vv)))
except ValueError:
    print("Введено не целое число!")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2021, 14:56
Помогаю со студенческими работами здесь

Как правильно использовать SUM? Решение задачи
Всем добрый день! Имеется задача: Составить отчет: фамилия студента, предприятие, на которое трудоустроился студент, группа студента...

SUM первой таблицы равен полю sum второй
Получаю SUM(cashbox.sum) и просто поле sum договоров. Необходимо вывести только те, которые равные, то есть SUM(cashbox) = agreement.sum ...

При вводе n больше 1289 неправильно считает sum, если введу n=2000, то sum выводит вообще отрицательное, что не так?
program Project2; // Проверьте формулу: 1*2+2*3+...+n*(n+1)=(n*(n+1)*(n+2))/3 uses SysUtils; var n,i:Integer; ...

Не удается верно использовать for
Имею код: for ($i = 0; $i &lt; count($emails); $i++) { $email_check = mysqli_num_rows(mysqli_query($link, &quot;SELECT * FROM...

Не удается использовать процедуры
В общем изначально был код: procedure TmainMVT.CheckBox2Click(Sender: TObject); begin if CheckBox2.Checked = True then ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru